在上一篇中我们讨论了选择排序算法,本篇我们一起讨论下关于冒泡排序的算法,他也是属于蛮力算法的一种。
在一个可排序的列表中,我们每一次只比较相邻的元素,如果两者之间为逆序的话,我们就交换,这样我就把最大的元素沉到最底部,接下来我们就可以把第二大元素沉下去,算法直到所有元素漂浮到自己应该在的位置,则结束算法。
由于算法比较次数多,我们在这里只列举出两轮比较,展示给大家,以此类推就可以得出其他的结果:
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.