冒泡排序

分析:冒泡排序对于长度为为n的序列,共需要做n-1次比较和不超过n-1次交换,时间复杂度为O(n²)

void BubbleSort(int a[],int n){
    bool Sorted=false;//整体排序标志,先假设尚未排序
    while(!Sorted){
        Sorted=true;//假设已经完成排序
        for(int i=1;i<n;i++){
            if(a[i-1]>a[i]){
                swap(a[i-1],a[i]);
                Sorted=false;//整体排序不能保证,清除排序标志
            }
        }
        n--;//一次扫描交换,末尾元素就位,需要排序的有效长度缩减
    }
}//借助标志变量Sorted,可及时退出,而不总是做n-1次扫描交换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值