归并排序算法 C++

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

void main() { cout<<"Please input ten numbers:"; for(int i=0;i<=9;i++) { cin>>A[i]; } cout<<"The input numbers are:"; for(int j=0;j<=9;j++) cout<<A[j]<<" "; mergesort(A,0,9); cout<<"The megersorted numbers are:"; for(int k=0;k<=9;k++) { cout<<A[k]<<" "; } }
#include<iostream> using namespace std; #define N 10 int A[N]; void merge(int A[],int low, int mid, int high) { int i=low; int j=mid+1; int T[N]; int k=0; while (i<=mid && j<=high) { if (A[i] <= A[j]) { T[k] = A[i]; i++; k++; } else { T[k] = A[j]; j++; k++; } } if (i == mid+1) { while (j <= high) { T[k] = A[j]; k++; j++; } } else { while (i <= mid) { T[k] = A[i]; k++; i++; } } for (i=low,k=0; i<=high; i++,k++) A[i] = T[k];
}Hale Waihona Puke Baidu
void mergesort(int A[],int low,int high) { int mid=0; if(low<high) { mid=(low+high)/2; mergesort(A,low,mid); mergesort(A,mid+1,high); merge(A,low,mid,high); } }
相关文档
最新文档