1 #include<stdio.h>
2 void judge(int days);
3 void printfArr(int arr[],int len);
4 void insert_sort1(int arr[],int len);
5 void insert_sort2(int arr[],int len);
6 void insert_sort3(int arr[],int len);
7 int main()
8 {
9 int arr[10]={3,2,1,4,5,6,8,3,2,9};
10 int len=10;
11 insert_sort1(arr,len);
12 printfArr(arr,len);
13
14 getchar();
15 getchar();
16 return 0;
17 }
18 void printfArr(int arr[],int len)//输出结果
19 {
20 int i;
21 for(i=0;i<len;i++)
22 printf("%d",arr[i]);
23 }
24
25 //插入排序
26 void insert_sort3(int arr[],int len)
27 {
28 int temp,i,j;
29 for(i=1;i<len;i++)//确定插入过程中需要插入元素的下标
30 {
31 temp=arr[i];//保存一下待插入的元素值
32 for(j=i-1;j>=0&&temp<arr[j];--j)//j是已序序列最后一个下标
33 {
34 arr[j+1]=arr[j];
35 }
36 arr[j+1]=temp;//把保存的元素放到对应的位置
37 }
38 }
39
40 void insert_sort2(int arr[],int len)
41 {
42 int temp,i,j;
43 for(i=1;i<len;i++)//确定插入过程中需要插入元素的下标
44 {
45 temp=arr[i];//保存一下待插入的元素值
46 for(j=i-1;j>=0;--j)//j是已序序列最后一个下标
47 {
48 if(temp>arr[j])//待插入的元素和最后一个元素进行判断
49 {
50 arr[j+1]=arr[j];
51 }
52 else
53 break;
54 }
55 arr[j+1]=temp;//把保存的元素放到对应的位置
56 }
57 }
58
59 void insert_sort1(int arr[],int len)
60 {
61 int temp,i,j;
62 for(i=1;i<len;i++)//确定插入过程中需要插入元素的下标
63 {
64
65 for(j=i-1;j>=0;--j)//j是已序序列最后一个下标
66 {
67 if(arr[j+1]>arr[j])//待插入的元素和最后一个元素进行判断
68 {
69 temp=arr[j+1];
70 arr[j+1]=arr[j];
71 arr[j]=temp;
72 }
73 else
74 break;
75 }
76 }
77 }