直接插入算法
算法分析:
把一个数据插入到已经排好序的有序数列中,使整个序列在插入这个数据任然有序。插入的位置是要插入的数据与有序数列的各个数据从右向左比较其值大小决定的。
代码:
#include<stdio.h>
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];
}
}
int main()
{
int a[11], i;
printf("please input number:\n");
for(i = 1; i < 11; i++)
scanf("%d", &a[i]);
printf("the original order:\n");
for(i = 1; i < 11; i++)
printf("%5d",a[i]);
insort(a, 10);
printf("\nthe sorted numbers:\n");
for(i = 1; i < 11; i++)
printf("%5d",a[i]);
printf("\n");
}