(╥╯^╰╥)
1 /* 2 请设计直接插入排序算法函数void insertSort(int a[],int n),对a[1]..a[n]进行升序排序。 3 并测试在不同数据规模下的排序效率。 4 */ 5 #include "Arrayio.h" 6 #define N 10000 /*N为数据量大小,因data1.txt中只有50万个数,所以自行设定N值时需让N<=500000*/ 7 8 /*请将本函数补充完整,并进行测试*/ 9 void insertSort(int a[],int n) 10 { 11 /*直接插入排序*/ 12 int i; 13 for(i=2; i<=n; i++) 14 { 15 if(a[i]<a[i-1]) 16 { 17 int j = i-1; 18 int tmp = a[i]; 19 while(tmp<a[j]) 20 { 21 a[j+1] = a[j]; 22 j--; 23 } 24 a[j+1] = tmp; 25 } 26 } 27 } 28 29 int main() 30 { 31 int a[N+1],n; /*数据存储在a[1]...a[N]中*/ 32 printf("数据初始化...\n"); 33 n=readData(a,N,"data1.txt"); /*从data1.txt中读入N个整数存入数组a,n为实际读入的数据个数*/ 34 printf("%d个数据排序中...\n",n); 35 insertSort(a,n); 36 saveData(a,n,"out.txt"); /*排序结果存放在out.txt文件中*/ 37 printf("排序结束,排序结果保存在out.txt文件中。\n"); 38 return 0; 39 }