直接插入排序~c语言

#include<stdio.h>
int main()
{
    int s[20];
    int n,i,j,key,f=1;
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        scanf("%d",&s[i]);
    }
    for(i=0; i<n; i++)
    {
        key=s[i];                                //记录待排序的数值大小。
        for(j=i;j>0&&key<s[j-1];j--)   //将待排序的数值与前面的一一比较,比它大的数值往后移一位,
            s[j]=s[j-1];                          //直到前面的数比它小或者前面已经没数了就跳出循环。
        s[j]=key;                                //将待排序的数值插入合适的位置。
    }
    for(i=0; i<n; i++)
    {
        if(f)
        {
            printf("%d",s[i]);
            f=0;
        }
        else
            printf(" %d",s[i]);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/myCsdn_Xm/article/details/81184021