冒泡排序的一般写法为:
int[] array = new int[]{5,2,1,3,4}; for(int x=0;x<array.length-1;x++){ for(int y=0;y<array.length-1;y++){ if(array[y]<array[y+1]){ int temp=0; temp = array[y]; array[y]=array[y+1]; array[y+1]=temp; } } } System.out.println(Arrays.toString(array)); |
冒泡排序的优化:
public static void maopao2(int[] arr){ boolean flg=true; int l=arr.length-1; int count=0; while(flg){ count++; flg=false; for(int j=1;j<=l;j++){ if(arr[j]<arr[j-1]){ int temp; temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; flg=true; } } l--; } for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } System.out.println(count+" "+l); } |
这种新的方法避免了冒泡排序中,即使排好了依旧会运行排序的弊端,但它相对于正常的排序,还是会多一次。
原文:https://www.cnblogs.com/wxldlxt/p/10871209.html