本帖最后由 我为你着迷 于 2014-6-6 08:07 编辑
冒泡排序和选择排序的效率都不高 ,因为这2种排序在堆内存中换位置比较消耗资源。虽然不高但是有不高的好处,代码简单,看起来比较直观好记。毕老师不是说了嘛 ,最快的排序是希尔排序,是以三层循环加上位运算的排序,是速度最快的效率最高的,但是比较复杂。晕,代码看起来有点乱。
- class ArrayText3
- {
-
- //选择排序。
- public static void selectSort(int[] arr)
- {
- for(int x=0;x<arr.length;x++)
- {
- for(int y=x+1;y<arr.length-1;y++)
- {
- if(arr[x]>arr[y])
- {
- int temp=arr[x];
- arr[x]=arr[y];
- arr[y]=temp;
-
- }
- }
- }
- }
-
- //冒泡排序。
- public static void bubbleSort(int[] arr)
- {
- for(int x=0;x<arr.length-1;x++)
- {
- int y=0;y<arr.length-x-1;y++)
- {
- if(arr[y]>arr[y+1})
- {
- int temp=arr[y];
- arr[y]=arr[y+1];
- arr[y+1]=temp;
-
- }
- }
- }
- }
-
-
- public static void main(String[] args)
- {
- //排序前。
- int[] arr={3,1,4,5,6,8};
- printArray(arr);
-
- //排序后。
- selectSort(arr);
- //bubbleSort(arr);
- printArray(arr);
-
- }
-
- //打印数组中的元素,元素间用逗号隔开。
- public static void printArray(int[] arr)
- {
- System.out.println("[");
- for(int x=0;x<arr.length;x++)
- {
- if(x!=arr.length-1)//这句的话意思是x有等于arr.length-1和x不等于arr.length-1这两种情况。
- System.out.print(arr[x]+",");
- else
- System.out.println(arr[x]+"]");
- }
- }
- }
复制代码
|