交换排序——冒泡排序

/*
 *算法思想:
 *  两两比较待排序元素的关键字,发现他们次序相反时即进行交换,直到没有逆序
 *  元素为止。
 */

/*
 *过程分析:
 *  冒泡排序中参与比较的总是相邻的关键字r[i]与r[i+1],若是逆序则交换,直到
 *  某一趟排序中没有出现元素交换,排序结束。
 */

/*
 *性能分析:
 *  时间复杂度O(n^2)
 */
#include <stdio.h>
#define length 9
void BubbleSort(int *order)
{
    int i=0,j=0,change=1;//change用于记录该趟排序中是否出现元素交换
    for(i=0;i<length && change;++i)
    {
        change=0;
        for(j=0;j<length-1-i;++j)
            if(order[j]>order[j+1])
            {
                int temp=order[j];
                order[j]=order[j+1];
                order[j+1]=temp;
                change=1;
            }
    }
}
int main()
{
    int order[length]={0,49,52,65,97,35,13,27,49};
    BubbleSort(order);
    int i;
    for(i=0;i<length;i++)printf("%d  ",order[i]);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值