您的位置:首页 > 编程语言 > Java开发

java中的三种排序方法使用:选择排序,冒泡排序,sort方法排序。

2013-07-14 10:24 627 查看
1)选择排序

思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,放在数列的最前(或最后),直到待排序的数据元素全部排完。

2)冒泡排序

思想:对比相邻元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移到数组后面(也可以反过来)。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

3)sort方法排序

思想:直接调用Arrays类中的sort方法对数组进行排序。

三种方法实例练习:

import java.util.Arrays;
import java.util.Random;

public class Sort {
//选择排序法
public static void SelectSort(int a[])
{
for(int x=0;x<a.length-1;x++) //由第一个数开始比较,最后一个直接是最大的,不用比较。
{
for(int y=x+1;y<a.length;y++)   //把最小的放在a[x]中。
{
if(a[x]>a[y])
{
//将两个数互换位置。
int temp=a[x];
a[x]=a[y];
a[y]=temp;
}
}
}
}
//冒泡排序法
public static void BubbleSort(int[] a)
{
for(int x=0;x<a.length-1;x++)       //控制排序轮数,为数组长度-1。
{
for(int y=0;y<a.length-1-x;y++) //两两比较,把较大的放在a[y+1]中。
{
if(a[y]>a[y+1])
{
int temp=a[y];
a[y]=a[y+1];
a[y+1]=temp;
}
}
}
}
//使用sort方法进行排序
public static void SortMethod(int a[])
{
Arrays.sort(a);
}
//定义一个生成随机数组的方法
public static int[] array(int[] arr)
{
Random random=new Random();
//生成10个200以内的随机数放入数组中
for(int i=0;i<arr.length;i++)
{
arr[i]=random.nextInt(200);
}
return arr;
}
//定义一个打印数组的方法
public static void print(int a[])
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+"  ");
}
}

public static void main(String args[])
{
int[] a = new int[10];                  //定义个数为10个
System.out.println("使用选择法排序:");
a=array(a);                             //生成一组随机数组
print(a);                               //打印出随机数组
System.out.println();                   //换行
SelectSort(a);                          //使用选择排序法进行排序
print(a);                               //打印出排序后的数组
System.out.println();
System.out.println("使用冒泡法排序:");
a=array(a);                             //生成新的随机数组用冒泡法排序
print(a);
System.out.println();
BubbleSort(a);
print(a);
System.out.println();
System.out.println("使用sort方法排序:");
a=array(a);                             //生成新的随机数组用sort方法排序
print(a);
System.out.println();
SortMethod(a);
print(a);
}
}
另外一个问题是关于性能优化的,可以在比较时先不调换数组中的数据,记下最大或最小的角标,最后直接通过角标调换数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java笔记