直接插入排序

将数组元素从左到右依次声明为监视哨,如果小于左侧则交换位置,直到实现从小到大的排序

#include <stdio.h>

int main(void)
{
        int a[11],i;

        for(i=1;i<11;i++)
        {
                scanf("%d",&a[i]);
        }

        for(i=1;i<11;i++)
        {
                printf("%5d",a[i]);
        }
        printf("\n");

        insort(a,10);

        for(i=1;i<11;i++)
        {
                printf("%5d",a[i]);
        }
        printf("\n");
        return 0;


}

int insort(int s[],int n)
{
        int i,j;
        for(i=2;i<=n;i++)
        {
                s[0] = s[i];
                j = i - 1;
                while(s[0] < s[j])
                {
                        s[j+1] = s[j];
                        --j;
                }
                s[j+1] = s[0];
        }
}