时间复杂度O(n2),空间复杂度O(1),稳定的排序算法
#include<iostream>
using namespace std;
//正宗的冒泡排序
void BubbleSort(int *num,int len){
for(int i=0;i<len;i++){
for(int j=len-2;j>=i;j--){
if(num[j]>num[j+1]){//若前者大于后者
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
}
//改进的冒泡排序
void BubbleSort2(int *num,int len){
int i,j;
if(len<=1)
return;
for(i=0;i<len;i++){
bool flag=false;
for(j=len-2;j>=i;j--){
if(num[j]>num[j+1]){//若前者大于后者
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
flag=true;
}
}
if(!flag)
return;
}
}
int main(){
int num[10]={2,3,9,6,1,6,4,9,1,9};
BubbleSort(num,10);
cout<<"正宗冒泡排序的结果"<<endl;
for(int i=0; i<10; i++)
cout<<num[i]<<" ";
cout<<endl;
int num1[10]={2,3,9,6,1,6,4,9,1,9};
BubbleSort(num1,10);
cout<<"优化冒泡排序的结果"<<endl;
for(int i=0; i<10; i++)
cout<<num1[i]<<" ";
cout<<endl;
return 0;
}