(1)基本思想
交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特 点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。
(2)代码实现
为了提高效率,优化代码,定义flg为false,意思是如果这一趟有序后,就不必进行下一趟。并且设置 j < array.length-1-i ,而不是 array.length。
public static void bubbleSort(int[] array) {
for (int i = 0; i < array.length; i++) {
boolean flg = false;
for (int j = 0; j < array.length-1-i; j++) {
if (array[j] > array[j+1]){
swap(array,j,j+1);
flg = true;
} else {
break;
}
}
if (flg == false) {
return;
}
}
}
(3)特性总结
1. 时间复杂度:O(N^2) (不考虑优化的情况下) 空间复杂度:O(1)
2.稳定性:稳定