本文共 860 字,大约阅读时间需要 2 分钟。
//归并排序#include#include #include #include //#include using namespace std;const int MAXSIZE=1001;//待排序数据规模,r[0]保留,实际数组是r[1]---r[500]//归并排序法Merge()+MergePass()+MergeSort()//r[s]--r[m];r[m+1]--r[t]void Merge(int r[],int r1[],int s,int m,int t)//一次归并算法5参{ int i=s;//i从s到m int j=m+1;//j从m+1到t int k=s;//k从s到t while(i<=m && j<=t) { if(r[i]<=r[j]) r1[k++]=r[i++]; else r1[k++]=r[j++]; } if(i<=m) { while(i n-h+1)//只剩一个h长度和一个小于h长度的子序列 Merge(r,r1,i,i+h-1,n); else//只剩一个子序列了 for(int k=i;k<=n;k++) r1[k]=r[k];}void MergeSort(int r[],int r1[],int n)//2路归并非递归算法3参{ //h代表着一开始时候的归并长度 int h=1; while(h >data[i]; infile.close();}//输出内存数组至外存ordered_data_salary.txt文件void write_data(int data[]){ ofstream outfile("ordered_data_salary.txt",ios::out); if(!outfile) { cerr<<"open ordered_data_salary.txt error!"<
转载地址:http://hltz.baihongyu.com/