配列ベースの直接挿入ソートアルゴリズムとコード実装

1066 ワード

配列ベースの直接挿入ソートアルゴリズム:
a[0]は歩哨として配列が秩序配列と無秩序配列に分けられ、初期秩序配列L 1にはa[1]の要素しかなく、a[2]−a[n]は無秩序配列L 2である.順番にa[2]-a[n]をL 1に挿入する:a[i]をL 1に挿入する前に、L 1の中で後ろから適当な位置を探す(検索中にa[i]より大きい要素を1つ後ろに移動する).n-1回の挿入を実行した後、L 2の中の要素はすべてL 1の中に挿入し、L 1は1つの完全な秩序の表である.
コード実装:
//      (    ) insert-sort
//        , “for(j=i-1;a[0]「それでいい
#include 
#include 
int InsertSort(int a[], int n)
{
int i,j;//i     、j     
for(i=2;i<=n;i++)
{
if(a[i]=   (  テーブルの  の  )、  の  を  します(  テーブルを  し、  は  されません)。
NULL;
}
return 0;
}
int main()
{
int i,k;
int n;
printf("Please input the Number of  words: ");
scanf("%d",&n);
int a[n+1]; //a[0]  を  し、a[1]-a[1] べ え ち  を  し、n+1を  とする。
a[0]=0; //     a[0]
printf("Please input the %d words: ",n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
InsertSort(a,n);//    ソート
printf("InsertSort output : ");
for(i=1;i<=n;i++)
{
printf("%d ",a[i]);
}
return 0;
}

検討と指摘を歓迎します.- -