排序——插入排序

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int i,j,book[100],n;
 5     printf("enter total numbers	");
 6     scanf("%d",&n);
 7     for(i=1;i<=n;i++)
 8     {
 9         printf("enter number %d	",i);
10         scanf("%d",&book[i]);    
11     }    
12     
13     for(i=2;i<=n;i++)
14     {
15         if(book[i]<book[i-1])
16         {
17             book[0]=book[i];
18             j=i-1;
19             while(book[0]<book[j])    //寻找插入位置
20             {
21                 book[j+1]=book[j];    //将大于的数后移
22                 j=j-1;
23             }
24             book[j+1]=book[0];      //插入记录插到正确位置
25         }
26     }
27     
28     for(i=1;i<=n;i++)
29         printf("%d	",book[i]);
30     return 0;
31 }

book[0]的作用

1.保存book[i]

2.检查变量j是否越界

算法基本思想:将待插入的数与与有序区中的各数从右向左一次比较!

原文地址:https://www.cnblogs.com/boyiliushui/p/4477744.html