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 }