算法 合并排序 c++语言
Posted 有头发的程序猿#
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法 合并排序 c++语言相关的知识,希望对你有一定的参考价值。
今天复习算法,盲敲合并排序出现了许多问题,就把该算法彻底理解一遍,敲了几遍,加深自己印象
#include<iostream>
using namespace std;
void Merge(int a[],int left,int middle,int right)
int m=left,k=left,j=middle+1;
int *b = new int[right-left];
while(m<=middle && j<=right)
if(a[m]<=a[j]) b[k++]=a[m++];
else b[k++]=a[j++];
if(m>middle)
for(int q=j;q<=right;q++) b[k++]=a[q];
else
for(int q=m;q<=middle;q++) b[k++]=a[q];
for(int w=left;w<=right;w++) a[w]=b[w];
void MergeSort(int a[],int left,int right)
if(left<right) //控制至少两个元素
int middle = (left+right)/2;
MergeSort(a,left,middle);
MergeSort(a,middle+1,right);
Merge(a,left,middle,right);
int main()
int a[5]=1,4,2,3,7;
MergeSort(a,0,4);
for(int j=0;j<=4;j++) cout<<a[j]<<" ";
return 0;
以上是关于算法 合并排序 c++语言的主要内容,如果未能解决你的问题,请参考以下文章