原創 增強版氣泡排序演算法 java版

2021-07-13 11:06:04 字數 1790 閱讀 9711

原理:第n趟迴圈,如果已經沒有移動元素的操作,說明排序已完成,迴圈應該退出,不必再執行後續的迴圈操作,因為就算比較也不會再有元素會被移動。增加此控制計數器。控制迴圈退出。

如下程式,其實第6趟就已經排序完成,沒有可移動的元素了。但是還是走了10趟排序。是非常不必要的。

public static void maopaosortold(int array) 

}string arrstring =buildstr(array);

system.out.println("外層排序結束,第"+i+"輪,元素結構"+arrstring);

}}

外層排序結束,第1輪,元素結構[4,24,1,3,15,2,60,54,40,45,63]

外層排序結束,第2輪,元素結構[4,1,3,15,2,24,54,40,45,60,63]

外層排序結束,第3輪,元素結構[1,3,4,2,15,24,40,45,54,60,63]

外層排序結束,第4輪,元素結構[1,3,2,4,15,24,40,45,54,60,63]

外層排序結束,第5輪,元素結構[1,2,3,4,15,24,40,45,54,60,63]

外層排序結束,第6輪,元素結構[1,2,3,4,15,24,40,45,54,60,63]

外層排序結束,第7輪,元素結構[1,2,3,4,15,24,40,45,54,60,63]

外層排序結束,第8輪,元素結構[1,2,3,4,15,24,40,45,54,60,63]

外層排序結束,第9輪,元素結構[1,2,3,4,15,24,40,45,54,60,63]

外層排序結束,第10輪,元素結構[1,2,3,4,15,24,40,45,54,60,63]

改良後的增強版氣泡排序法:

/**

* created by lirong5 on 2016/6/13.

*/public class sorttest ;

maopaosort(array);

}/**

* 增強版氣泡排序法,從第cyclecount次開始,沒有移動元素位置,即可證明排序完成,退出排序。

* */

public static void maopaosort(int array)

}string arrstring =buildstr(array);

system.out.println("外層排序結束,第"+i+"輪,元素結構"+arrstring);

if(flag)

}system.out.println("總共移動元素次數:"+innermovecount);

}public static string buildstr(int array)

return rtnstr.substring(0,rtnstr.length()-1)+"]";

}}

控制台輸出:

外層排序結束,第1輪,元素結構[4,24,1,3,15,2,60,54,40,45,63]

外層排序結束,第2輪,元素結構[4,1,3,15,2,24,54,40,45,60,63]

外層排序結束,第3輪,元素結構[1,3,4,2,15,24,40,45,54,60,63]

外層排序結束,第4輪,元素結構[1,3,2,4,15,24,40,45,54,60,63]

外層排序結束,第5輪,元素結構[1,2,3,4,15,24,40,45,54,60,63]

外層排序結束,第6輪,元素結構[1,2,3,4,15,24,40,45,54,60,63]

總共移動元素次數:24

氣泡排序 JAVA版

氣泡排序 演算法思想是每次從陣列末端開始比較相鄰倆元素,把第i小的冒泡到陣列的第i個位置。i從0一直到n 1從而完成排序。當然也可以從陣列開始端開始比較相鄰兩元素,把第i大的冒泡到第n i個位置。i從0一直到n 1從而完成排序。public abstract classsorterextendsco...

氣泡排序(Java版)

public class sort public void display system.out.print 第 i 1 趟排序的結果 display public static void main string args sort sort new sort a system.out.print ...

常見的排序演算法 (冒泡 選擇排序)(Java版)

1.氣泡排序 演算法原理 比較相鄰的元素,若第乙個元素大於第二個元素,就交換它們倆個元素。讓每一對相鄰的元素都做相同的步驟,最後得到最後得元素為最大值。重複上述的步驟。package my public class bubblesort sort sort new sort sort.bubble ...