排序方法:插入法排序

 插入法排序:顧名思義就是把後面的數插入到前面已有的有序數列中在進行排序

舉個列子:  把  7 3 6 9 1 從小到大進行插入法排序;

第一次:先將第一個數排好序,顯然已經排好了 7 3 6 9 1

第二次:再把3插入,將其與7比較 顯然:3 7 6 9 1 

下一次:以此類推:將6, 9 ,1依次放入到已排好的序列中

3 6 7 9 1

3 6 7 9 1

1 3 6 7 9 

#include<stdio.h>

int main()
{
    int n,a[100];
    int i,j,k;
    while(scanf("%d",&n)!=EOF)
    {
        printf("please input %d numbers:\n",n);
        for(i=1;i<=n;i++)
            scanf("%d",&a[i]);
        for(i=1;i<=n;i++)
        {
            for(j=i;j>=0;j--)        //將後面的數一個一個插入,並與前面的數排序
            {
                if(a[j]<a[j-1])
                {
                    k = a[j];
                    a[j] = a[j-1];
                    a[j-1] = k;
                }
            }
        }
        for(i=1;i<=n;i++)
            printf("%d\t",a[i]);
        printf("\n");
    }

    return 0;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章