这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。
时间复杂度
· 冒泡排序最好的时间复杂度为O(n)
· 冒泡排序的最坏时间复杂度为O(n^2)
· 因此冒泡排序总的平均时间复杂度为O(n^2)
c++实现如下
#include<iostream>
#include<string>
using namespace std;
int main(){
int a[10];
int n,temp;
cin>>n;//对n个数进行排序
for(int k=0;k<n;k++){
cin>>a[k];
}
//核心代码
for(int i=0;i<n-1;i++){
//因为外层遍历是取值跟里层里取出的后一个元素对比,因此取值比元素数少一个
for(int j=i+1;j<n;j++){
if(a[j]>a[i]){ //如果符合条件就交换,用><取决于你要排的方式
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
for(int m=0;m<n;m++){
cout<<a[m];//打印
}
cout<<endl;
return 0;
}