c语言实现:使用冒泡排序,从小到大排列,输出每一趟排序后的结果以及总的比较次数,

如题所述

#include<stdio.h>
int main()
{
    int num=6,tep,sum=0;
    int a[6]= {2,1,10,8,7,6};
    int i,j;
    printf("原数组:");
    for(int p=0; p<num; p++)
        printf("%d ",a[p]);
    puts("");
    for(i=0; i<num-1; i++)
    {
        for(j=0; j<num-i; j++)
        {
            if(a[j]>a[j+1])
            {
                tep=a[j];
                a[j]=a[j+1];
                a[j+1]=tep;
            }
            sum++;
        }
        printf("第%d趟排序后:",i+1);
        for(int p=0; p<num; p++)
            printf("%d ",a[p]);
        printf("此时总比较次数:%d\n",sum);
    }
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答