氣泡排序演算法【親測】
阿新 • • 發佈:2019-01-05
-
氣泡排序和氣泡排序改進演算法
public class Sort { /** * 氣泡排序 */ void bubbleSort(int arr[],int len){ int i,j,temp,c1=0,c2=0; for(i=0;i<len-1;i++){ for(j=len-1;j>i;j--){ c1++; if(arr[j]<arr[j-1]){ temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; c2++; } } } System.out.println("比較"+c1+"次,"+"移動"+c2+"次"); } /** * 氣泡排序改進 */ void bubbleSort2(int arr[],int len){ int i,j,temp,c1=0,c2=0; boolean flag=true; for(i=0;i<len-1 && flag;i++){ flag=false; for(j=len-1;j>i;j--){ c1++; if(arr[j]<arr[j-1]){ c2++; temp=arr[j-1]; arr[j-1]=arr[j]; arr[j]=temp; flag=true; } } } System.out.println("比較"+c1+"次,"+"移動"+c2+"次"); } }
-
測試類
public class Test { public static void main(String[] args) { int[] arr=new int[]{5, 2, 6, 9, 3, 0, 1, 7, 4, 8}; Sort s=new Sort(); // s.bubbleSort(arr,arr.length);//比較45次,移動20次 // s.bubbleSort2(arr,arr.length);//比較42次,移動20次 for(int k=0;k<arr.length;k++){ System.out.print(arr[k]); } System.out.println(); } }
s.bubbleSort(arr,arr.length);//比較45次,移動20次
s.bubbleSort2(arr,arr.length);//比較42次,移動20次
以上倆句互相比較,發現改進後,比較的次數變少了,效率提高。