以前学起泡排序的时候只是知道它的思路及实现,并没有好好总结归纳一下,那么现在就来补充一下。
首先假设初始键值序列为 [50 13 55 97 27 38 49 65]
第一趟排序结果为 [13 50 55 27 38 49 65] 97
第二趟排序结果为 [13 50 27 38 49] 55 65 97
第三趟排序结果为 [13 27 38 49] 50 55 65 97
第四趟排序结果为 13 27 38 49 50 55 65 97
那么我们整个待排序列是分为了有序区和无序区(右边和左边):有序区是没有被方括号括着的,无序区是被方括号括着的,一开始没有排序,所以初始有序区为空,因为冒泡排序每次都是两两比较,大的一方像起泡一样不断向右移,只要后面的数比它小,那么每一轮必然会从无序区选出最大的数
那么我们首先用一般的思路来实现它
public void BubbleSort(int a[]){
for(int i=a.length;i>0;i--){
for(int j=0;j<i;j++){
if(a[j+1]<a[j]){