冒泡排序算法描述:比较相邻两个元素大小,如果反序,则置换。
代码:
boolean flag = true;
int temp = 0;
int k = 0;
for(int i = array.length - 1 ; ( i > 0 ) && flag; i--){
flag = false;
for( k = 0 ; k < i ; k++){
if( array[k] > array[k+1] ){
flag = true;
temp = array[k];
array[k] = array[k+1];
array[k+1] = temp;
}
}
}
分析:
最好情况:只需要扫描一次,时间复杂度为o(n)
最坏情况:事件复杂度o(n^2)
总之,数据序列约接近有序,冒泡排序效率越高。
空间复杂度为o(1)。
冒泡排序算法是稳定的。