排序方法不是java的内容,是关于算法的内容,算法是不局限于哪一种编程语言的,任何一种语言都通用。
而且排序算法有很多种的,例如选择排序,冒泡排序,插入排序,对象排序,快速排序等都是简单的排序,还有很多复杂的排序,不可能穷举完,建议你以后看看数据结构和算法方面的书籍。
下面的代码分别给出了冒泡排序,选择排序的java实现示例代码,希望对你有帮助- public class ArrayTool
- {
- /**
- 空构造函数
- */
- private ArrayTool(){}
- /**
- 获取一个整型数组的最大值
- @param arr 接收一个int类型的数组
- @return 会返回数组中的最大值
- */
- public static int getMax(int[] arr)
- {
- int max=0;
- for(int i=1;i<arr.length;i++)
- {
- if(arr[i]>arr[max])
- max=i;
- }
- return arr[max];
- }
- /**
- 获取一个整型数组的最小值
- @param arr 接收一个int类型的数组
- @return 会返回数组中的最小值
- */
- public static int getMin(int[] arr)
- {
- int min=0;
- for(int i=1;i<arr.length;i++)
- {
- if(arr[i]<arr[min])
- min=i;
- }
- return arr[min];
- }
- /**
- 给int数组进行选择排序
- @param arr 接收一个int类型的数组
- */
- public static void selectionSort(int[] arr)
- {
- for(int i=0;i<arr.length-1;i++)
- {
- for(int j=i+1;j<arr.length;j++)
- {
- if(arr[i]>arr[j])
- {
- swap(arr,i,j);
- }
- }
- }
- }
- /**
- 给int数组进行冒泡排序
- @param arr 接收一个int类型的数组
- */
- public static void bubbleSort(int[] arr)
- {
- for(int i=0;i<arr.length-1;i++)
- {
- for(int j=i+1;j<arr.length-i-1;j++)
- {
- if(arr[j]>arr[j+1])
- {
- swap(arr,j,j+1);
- }
- }
- }
- }
- /**
- 给数组中的元素进行位置置换
- @param arr 接收一个int类型的数组
- @param a 要置换的位置
- @param b 要置换的位置
- */
- private static void swap(int[] arr,int a,int b)
- {
- int temp=arr[a];
- arr[a]=arr[b];
- arr[b]=temp;
- }
- /**
- 用于打印数组中的元素,格式是:[element1,element2,...]
- */
- public static void printArray(int[] arr)
- {
- System.out.print("[ ");
- for(int i=0;i<arr.length;i++)
- {
- if(i!=arr.length-1)
- System.out.print(arr[i]+", ");
- else
- System.out.println(arr[i]+"]");
- }
- }
- }
复制代码 说明:这里代码没有给出插入排序,对象排序,快速排序,希望你有空去查查。
一般情况下几乎不用冒泡(我没考虑用在项目中),它过于简单,只有当数据量很小的时候(如上面的示例代码)它会有些应用价值。
选择排序虽然把交换次数降到了最低,但比较的次数仍然很大,但数据量小时,可以用选择排序;
假如当数量比较小且基本有序时,插入排序时比较快的;
但是对于大数据量的排序来说,快速排序通常是最快的方法。
|