zoukankan      html  css  js  c++  java
  • InsertSort

    1  Insertion Sort(40分)

    题目内容:

    實作插入排序法讓一個序列的數字遞增,並輸出數字總共交換了幾次。

    比如說一個序列1 3 7 9 2,前四個數字都已經排好了,這時候第五個數字2進來,他必須跟9,7,3交換使得序列變成1 2 3 7 9。這個數字2的交換次數就是3次。

     

     

    输入格式:

     

    輸入第一行為一個數字T,代表測試資料的筆數。接下來有T筆測資,每筆測資第一行為一個正整數N,表示這筆測資有N個數字。每筆測資的第二行會有N個數字,每個數字間以空格隔開。

    數字範圍:

    0 < N <= 100

    0 <= 序列內的數字 <= 1000000

    输出格式:

     

    輸出一行數字,將每筆測資的答案加總後輸出。

    输入样例:

     

    3

    5

    5 4 3 2 1

    3

    1 2 3

    6

    1 3 5 2 4 6

     

    输出样例:

    13

    时间限制:500ms内存限制:32000kb

    第一次真正意义上自己调试成功的代码

    Insert Sort

    A[5] = {1, 3, 2, 5 , 4}

    for   i = 1   to  i < n

    x = A[i]  将a[i]拿出

    for  j = i - 1  to   0

    if   a[j] > a[i]    

    a[j]向后移动一位

    else

    x = a[j + 1]

    if  i < 0

    a[0] = x


    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #define M 100000
    
    using namespace std;
    
    int i,j;
    
    int main()
    {
        int n,sub,m,num[M];
        int flag;
        sub = 0;
        scanf("%d",&n);
        while(n--)
        {
            int ans = 0;
            scanf("%d",&m);
            for( i = 0; i < m; i++ )
                scanf("%d",&num[i]);
    
            /*InsertSort*/
            for( i = 1; i < m; i++)
            {
                flag = num[i];
                for( j = i-1; j >= 0; j--)
                {
                    if( flag < num[j] )
                    {
                        num[j+1] = num[j];
                        ans++;
                    }
                    else
                    {
                        num[j+1] = flag;
                        break;
                    }
                }
                if (j < 0)
                    num[0] = flag;
            }
    
            sub += ans;
        }
    //    for( i = 0; i < m; i++ )
    //        printf("%d ",num[i]);
    
        printf("%d
    ",sub);
    
        return 0;
    }
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    TCP拥塞控制机制
    C/S 与 B/S 区别
    ext4文件系统新特性
    关于TCP慢启动和拥塞避免的题
    [信息图表]移动学习 Go Study
    [时间线]Android市场的发展
    学习,只有勤奋是不够的……
    UNIX域套接字实例
    程序员的本质
    淘宝Web服务器Tengine正式开源
  • 原文地址:https://www.cnblogs.com/h-hkai/p/7833198.html
Copyright © 2011-2022 走看看