这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。
时间复杂度
· 冒泡排序最好的时间复杂度为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; }