交换排序:冒泡排序
思维导图:
冒泡排序的基本思想:
一次排序找到了最大的元素并放入最后的位置,比较n-1趟就能得到一个有序数列
冒泡排序的代码实现:
void BubbleSort(int a[],int n){
for(int i=0;i<n-1;i++){
bool flag = false;
int temp;
for(int j = i;j<n-1;j++)
if(a[j] > a[j+1]){
temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
flag = true;
}
//若flag为false,就说明不存在逆序的序列了,所以就不需要下一次的循环比较了
if(flag == false)
return;
}
}
冒泡排序的性能:
时间复杂度:
空间复杂度: O(1)
算法稳定
适用于顺序存储和链式存储