4-6 InsertSort.c
1 #include <stdio.h> 2 #include "4-1 CreateData.c" //生成随机数的函数 3 #define ARRAYLEN 10 //需要排序的数据元素数量 4 void InserSort(int a[],int n)//直接插入排序 5 { 6 int i,j,t; 7 for(i=1;i<n;i++) 8 { 9 t=a[i]; //取出一个未排序的数据 10 for(j=i-1;j>=0 && t<a[j];--j) //在排序序列中查找位置 11 a[j+1]=a[j]; //向后移动数据 12 a[j+1]=t; //插入数据到序列 13 } 14 } 15 int main() 16 { 17 int i,a[ARRAYLEN]; //定义数组 18 for(i=0;i<ARRAYLEN;i++) //清空数组 19 a[i]=0; 20 if(!CreateData(a,ARRAYLEN,1,100)) //判断生成随机数是否成功 21 { 22 printf("生成随机数不成功!\n"); 23 getch(); 24 return 1; 25 } 26 printf("原数据:"); //输出生成的随机数 27 for(i=0;i<ARRAYLEN;i++) 28 printf("%d ",a[i]); 29 printf("\n"); 30 InserSort(a,ARRAYLEN); //调用插入排序函数 31 printf("排序后:"); 32 for(i=0;i<ARRAYLEN;i++) //输出排序后的结果 33 printf("%d ",a[i]); 34 printf("\n"); 35 getch(); 36 return 0; 37 }