(╥╯^╰╥)
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]
1 /* 2 请设计二分插入排序算法函数void binInsertSort(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 #include8 9 using namespace std;10 11 12 /*请将本函数补充完整,并进行测试*/13 void insertSort(int a[],int n)14 {15 /*直接插入排序*/16 for(int i=2; i<=n; i++)17 {18 if(a[i]
1 /* 2 请设计shell排序算法函数void shellSort(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 shellSort(int a[],int n)10 {11 for(int d=n/2;d>=1;d=d/2)12 {13 for(int i=d+1;i<=n;i++) {14 int tmp = a[i];15 int j;16 for(j=i-d;j>0&&tmp
1 /* 2 请设计简单选择排序算法函数void selectSort(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 #include8 9 using namespace std;10 11 /*请将本函数补充完整,并进行测试*/12 void selectSort(int a[],int n)13 {14 for(int i=1;i
1 /* 2 请设计筛选函数void sift(int a[],int k,int n),对a[k] 进行筛选, 3 并利用其设计堆排序算法函数void heapSort(int a[],int n), 4 对a[1]..a[n]进行升序排序。并测试在不同数据规模下的排序效率。(详见lab10_05.c) 5 */ 6 #include "Arrayio.h" 7 #define N 10000 /*N为数据量大小,因data1.txt中只有50万个数,所以自行设定N值时需让N<=500000*/ 8 9 /*请将本函数补充完整,并进行测试*/10 void sift(int a[],int k,int n)11 {12 int i,j,finished;13 i=k;14 j=2*i;15 a[0]=a[k];16 finished=0;17 while((j<=n)&&(!finished))18 {19 if((ja[j]))20 j++;21 if(a[0]>=a[j])22 finished=1;23 else24 {25 a[i]=a[j];26 i=j;27 j=2*j;28 }29 }30 a[i]=a[0];31 }32 33 void heapSort(int a[],int n)34 {35 int i;36 for (i=n/2; i>=1; i--)37 sift(a,i,n);38 for (i=n; i>1; i--)39 {40 a[0]=a[i];41 a[i]=a[1];42 a[1]=a[0];43 sift(a,1,i-1);44 }45 }46 47 int main()48 {49 int a[N+1],n; /*数据存储在a[1]...a[N]中*/50 printf("数据初始化...\n");51 n=readData(a,N,"data1.txt"); /*从data1.txt中读入N个整数存入数组a,n为实际读入的数据个数*/52 printf("%d个数据排序中...\n",n);53 heapSort(a,n);54 saveData(a,n,"out.txt"); /*排序结果存放在out.txt文件中*/55 printf("排序结束,排序结果保存在out.txt文件中。\n");56 return 0;57 }
1 /* 2 请设计冒泡排序算法函数void bubbleSort(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 #include8 9 using namespace std;10 11 /*请将本函数补充完整,并进行测试*/12 void bubbleSort(int a[],int n)13 {14 for(int i=1;i<=n-1;i++) {15 bool flag = true;16 for(int j=1;j<=n-i;j++) {17 if(a[j]>a[j+1]) {18 swap(a[j],a[j+1]);19 flag = false;20 }21 }22 if(flag) return ;23 }24 }25 26 int main()27 {28 int a[N+1],n; /*数据存储在a[1]...a[N]中*/29 printf("数据初始化...\n");30 n=readData(a,N,"data1.txt"); /*从data1.txt中读入N个整数存入数组a,n为实际读入的数据个数*/31 printf("%d个数据排序中...\n",n);32 bubbleSort(a,n);33 saveData(a,n,"out.txt"); /*排序结果存放在out.txt文件中*/34 printf("排序结束,排序结果保存在out.txt文件中。\n");35 return 0;36 }
1 /* 2 请设计快速排序算法函数void quickSort(int a[],int low,int right),对a[low]..a[right]进行升序排序。 3 并测试在不同数据规模下的排序效率。 4 */ 5 #include "Arrayio.h" 6 #define N 10000 /*N为数据量大小,因data1.txt中只有50万个数,所以自行设定N值时需让N<=500000*/ 7 8 /*请将本函数补充完整,并进行测试*/ 9 void quickSort(int a[],int low,int right )10 {11 int i = low, j = right;12 int tmp = a[low];13 if(low=tmp)18 j--;19 20 if(i