`

冒泡排序

阅读更多
冒泡排序代码
#include<stdio.h>
#define N 100
int a[N];//定义一位数组a[N]
int main()
{
    int i,n,j,t;
    while(~scanf("%d",&n))
//可输入多组数据
    {
        printf("请输入n个整数\n");
        for(i=0;i<n;i++)//依次输入n个整数
            scanf("%d",&a[i]);
        for(i=0;i<n-1;i++)
            for(j=0;j<n-i;j++)
        {
            if(a[j]<a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;//交换两个数值
            }
        }
        for(i=0;i<n;i++)//循环输出
            printf("%d ",a[i]);
    }
    getchar();getchar();//暂停循环
    return 0;
}
冒泡排序所遵循的原理就是每次和相邻的数比大小,最多能进行n-1次,第i个数能进行n-i次,就是一个双循环。冒泡排序的效率较低,更快一点的是快速排序,下篇会写到。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics