寒假第四天--排序--冒泡排序中数据交换的次数

来源:互联网 发布:mysql 联合唯一键用法 编辑:程序博客网 时间:2024/05/30 02:53

冒泡排序中数据交换的次数

Time Limit: 1000MS Memory limit: 65536K

题目描述

      听说过冒泡排序么?很好玩很暴力的一种排序方式,但对于小数据也是很实用的哦。今天我们不希望你用它来排序,而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。

输入

输入数据的第一行为一个正整数 T ,表示有 T 组测试数据。
接下来T行,每行第一个整数N, 然后有N个整数,无序。0<N<100

输出

输出共 T 行。
每行一个整数,代表本行数据从小到大冒泡排序所进行的交换次数。

示例输入

35 1 2 3 4 54 5 3 7 12 2 1

示例输出

041

提示

 

来源

 

示例程序
#include <stdio.h>#include <stdlib.h>int main(){    int i , t , j , k , n , a[101] , count ;    scanf("%d", &t);    for(j = 1 ; j <= t ; j++)    {        count = 0 ;        scanf("%d", &n);        for(i = 0 ; i< n ; i++)            scanf("%d", &a[i]);        for(i = 0 ; i < n ; i++)        {            for(k = 0 ; k < n - i -1 ; k++)            {                if(a[k] > a[k+1])                {                    int b ;                    b = a[k] ; a[k] = a[k+1] ; a[k+1] = b ;                    count++;                }            }        }        printf("%d\n", count);    }    return 0;}

0 0
原创粉丝点击