「16週目」--ソートを直接挿入するプロセスを表示します.

1648 ワード

/*Copyright(c)2015、煙台大学コンピュータと制御工学学院*All rights reserved*著者:李宗政*完成日:2015年12月14日*バージョン番号:V 1.0*コンテンツの説明:直接差分ソートのプロセスを表示し、数値を一歩一歩ソートします.
*/
しゅかんすう
#include <stdio.h>
#define MaxSize 20
typedef int KeyType;    //       
typedef char InfoType[10];
typedef struct          //    
{
    KeyType key;        //    
    InfoType data;      //     ,   InfoType
} RecType;              //         

void InsertSort(RecType R[],int n) // R[0..n-1]             
{
    int i,j,k;
    RecType tmp;
    for (i=1; i<n; i++)
    {
        tmp=R[i];
        j=i-1;            //        R[0..i-1]  R[i]     
        while (j>=0 && tmp.key<R[j].key)
        {
            R[j+1]=R[j]; //      R[i].key     
            j--;
        }
        R[j+1]=tmp;      // j+1   R[i]
        printf("i=%d: ",i);
        for (k=0; k<n; k++)
            printf("%d ",R[k].key);
        printf("
"); } } int main() { int i,n=10; RecType R[MaxSize]; KeyType a[]= {9,8,7,6,5,4,3,2,1,0}; for (i=0; i<n; i++) R[i].key=a[i]; printf(" :"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("
"); InsertSort(R,n); printf(" :"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("
"); return 0; }

結果