冒泡排序的思想:
将带排序的序列两两进行比较,较大的一个“冒泡”,“冒泡”即如果下标为A 与B的数据比较,
A 大则与B交换位置,否则就不交换位置,交换位置后,此时B的位置编程A,B 的下一个位置是B,
两者在进行比较,每进行一轮排序,总是较大的数排在剩下序列的最高位,也因此为冒泡排序。
什么情况下使用:
在已知待排序列中,只有少部分是无序的,这时考虑使用冒泡排序是高效的。
稳定性:
相同的数在比较后,这两个数的前后位置没有发生变化,则该算法是稳定,因此冒泡排序是稳定的算法。
时间复杂度和空间复杂度:
时间复杂度:O(n^2),空间复杂度:O(1)
算法实现:
public static void bubbleSort(int[] s){
int temp=0;
for(int i=0;i<s.length-1;i++){
for(int j=0;j<s.length-i-1;j++){
if(s[j]>s[j+1]){
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
}