冒泡排序_递增排列

/*
冒泡排序_递增排列
给出n个整数,请输出使用冒泡排序递增排列时所经过的交换次数。
Input
测试数据有多组,第一行的正整数T就是测试数据的组数。
每组测试数据单独占一行,第一个数就是该组数据的个数n,后跟n个整数。注意:两个数相等时不需要交换。
Output
对于每组测试数据,输出结果单独占一行,表示使用冒泡排序递增排列时所经过的交换次数。
*/
//
#include<stdio.h>
#define N 111

int in[N];

int main()
{
    int n,i,j,cnt,tt;
    while( ~scanf("%d",&n) )
    {
        for( i=0;i<n;i++ ) scanf("%d",&in[i]);

        for( i=n-1;i;i-- )          // i=n-1 防止 in[j+1] 越界
            for( j=0;j<i;j++ )
                if( in[j]>in[j+1] )	// 递增用 > 
                {
                    tt=in[j]; in[j]=in[j+1]; in[j+1]=tt;
                }
        for( i=0;i<n;i++ )
        {
            if( i ) printf(" ");
            printf("%d",in[i]); 
        }
        printf("\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_63173957/article/details/124561488