冒泡法也叫下沉法,是數組里一個基本的排序算法,小的排前面大的往下,往后挪。這種算法采用的是嵌套循環對整個數組遍歷,每次遍歷都比較相鄰的2個element,如果這對elements以升序(或者是值相等)那么保持它們的位置不變,else他們以降序排列,則交換它們的位置。
package?test;
/**
?*
?*?@author?dyin
?*/
public?class?BubbleTest?{
????public?static?void?Bubble(int[]?arrays){
????????for(int?i=0;i<arrays.length-1;i++){
????????????for(int?j=0;j<arrays.length-i-1;j++){
????????????????if(arrays[j]?>?arrays[j+1]){
????????????????????int?temp?=?arrays[j];
????????????????????arrays[j]?=?arrays[j+1];
????????????????????arrays[j+1]?=?temp;
????????????????}
????????????}
????????????//transfer?another?method
????????????printer(arrays,i+1);
????????}
????}
????
????public?static?void?printer(int[]?array,int?times){
????????System.out.print("第"+times+"次排序結果為:");
????????for(int?i=0;i<array.length;i++){
????????????System.out.print(array[i]+"?");
????????}
???????//?System.out.print(array[times]);
????????System.out.println();
????}
????
????public?static?void?main(String[]?args){
????????int[]?arry?=?new?int[]{4,6,5,3,9,1};
????????Bubble(arry);
????}
}
打印結果:
----------------------------------------------------
第1次排序結果為:4??5??3??6??1??9?
第2次排序結果為:4??3??5??1??6??9?
第3次排序結果為:3??4??1??5??6??9?
第4次排序結果為:3??1??4??5??6??9?
第5次排序結果為:1??3??4??5??6??9?
此種算法的時間復雜度為O(n^2)