mergesort
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mergesort相关的知识,希望对你有一定的参考价值。
#include <bits/stdc++.h> using namespace std; void mergesort(int a[],int l,int r){ int mid=(l+r)/2,i,j,k,c[r-l+10]; if(l==r)return; mergesort(a,l,mid);mergesort(a,mid+1,r); i=l;j=mid+1;k=0; while(i<=mid&&j<=r){ if(a[i]<a[j])c[k++]=a[i++]; else c[k++]=a[j++]; } while(i<=mid)c[k++]=a[i++]; while(j<=r)c[k++]=a[j++]; for(int i=l;i<=r;i++)a[i]=c[i-l]; } int main(){ int n,a[1000]; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; mergesort(a,1,n); for(int i=1;i<=n;i++)cout<<a[i]<<‘ ‘; puts(""); return 0; }
以上是关于mergesort的主要内容,如果未能解决你的问题,请参考以下文章