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

来源:互联网 发布:mongodb js脚本 编辑:程序博客网 时间:2024/06/11 12:47

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

Problem Description


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


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

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

Example Output


041

代码:

#include <stdio.h>#include <stdlib.h>int main(){    int t, n, a[200], i, j, s, x;    scanf("%d", &t);    while(t--)    {        s = 0;        scanf("%d", &n);        for(i = 0; i < n; i++)        {            scanf("%d", &a[i]);        }        for(i = 0; i < n - 1; i++)        {            for(j = 0; j < n - 1 - i; j++)            {                if(a[j] > a[j + 1])                {                    x = a[j];                    a[j] = a[j + 1];                    a[j + 1] = x;                    s += 1;                }            }        }        printf("%d\n", s);    }    return 0;}
原创粉丝点击