题目:编写一个C程序,应用直接插入排序算法将序列{2,5,6,,3,7,8,0,9,12,1}进行排序,要求从小到大排列,并输出排序后的数列元素。
算法分析:直接运用直接插入排序算法即可 代码实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void insertionsort(int a[], int n)
{
int i,j;
for(i=2;i<=n;i++)
{
a[0] = a[i];
j = i-1;
while(j>0 && a[0]<a[j])
{
a[j+1] = a[j--];
}
a[j+1] = a[0];
}
}
int main()
{
int i;
int a[11] = {-111,2,5,6,3,7,8,0,9,12,1};
printf("The original data array is\n");
for(i=1;i<=10;i++)
{
printf("%d ", a[i]);
}
insertsort(a, 10);
printf("\nThe result of insertion sorting for the array is\n");
for(i=1;i<=10;i++)
{
printf("%d ", a[i]);
}
}