冒泡排序思想
通过n次排序,每一次通过两两交换的方式,把最小的元素交换到无序区的最左边。
冒泡排序分析
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定的算法
冒泡排序的完成代码(C++)
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void BubbleSort(int num[],int len){
for(int i=0;i<len;i++){
//两两交换,把最小的放在第i个位置上
for(int j=i;j<len;j++){
if(num[i]>num[j]){
int temp = num[i];
num[i]=num[j];
num[j]=temp;
}
}
//输出
cout<<"第"<<i+1<<"趟结果如下"<<endl;
for(int j=0;j<len;j++){
cout<<num[j]<<" ";
}
cout<<endl;
}
}
int main(int argc, char *argv[]) {
int len;
cin>>len;
int num[len];
for(int i=0;i<len;i++){
cin>>num[i];
}
BubbleSort(num,len);
return 0;
}