在上一篇中我們討論了選擇排序算法,本篇我們一起討論下關於冒泡排序的算法,他也是屬於蠻力算法的一種。
在一個可排序的列表中,我們每一次只比較相鄰的元素,如果兩者之間爲逆序的話,我們就交換,這樣我就把最大的元素沉到最底部,接下來我們就可以把第二大元素沉下去,算法直到所有元素漂浮到自己應該在的位置,則結束算法。
由於算法比較次數多,我們在這裏只列舉出兩輪比較,展示給大家,以此類推就可以得出其他的結果:
eg:
第一輪:
89 45 68 90 29 34 17
45 89 68 90 29 34 17
45 68 89 90 29 34 17
45 68 89 29 90 34 17
45 68 89 29 34 90 17
45 68 89 29 34 17 90
第二輪:
45 68 29 89 34 17 90
45 68 29 34 89 17 90
45 68 29 34 17 89 90
package gzw.pkg1;
/**
* Created by gzw on 2014/11/2.
*/
public class BubbleSort {
public static void main(String [] agrs){
int i,j,temp;
int arry[] = {89,45,68,90,29,34,17};
for(i = 0;i<arry.length-1;i++){
for(j = 0;j<arry.length-1-i;j++){
if(arry[j+1] < arry[j]){
temp = arry[j+1];
arry[j+1] = arry[j];
arry[j] = temp;
}
}
}
for(i = 0;i<arry.length;i++){
System.out.print(" "+arry[i]);
}
}
}
It is never too late to be what you might have been.