版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
递归方式实现冒泡排序,这里加了个flag判断是否有序,限界降低运行时间
#include <iostream>
#include <algorithm>
using namespace std;
int num[]={6,8,4,1,2,5,23,15};//测试数组
int len;//数组长度
void show(){//打印数组
for(int i=0;i<len;i++){
cout<<num[i]<<' ';
}
cout<<endl;
}
void bob(int a[],int n){//冒泡
int i,flag;
flag=0;
for(i=0;i<n-1;i++){
if(a[i]>a[i+1]){
swap(a[i],a[i+1]);
flag=1;
}
}
show();
if(n>1&&flag) bob(a,n-1);
}
int main(){
len=sizeof(num)/sizeof(int);
show();
bob(num,len);
}