标题:归并排序,运行不出结果,求指教。
取消只看楼主
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
已结贴  问题点数:20 回复次数:0 
归并排序,运行不出结果,求指教。
#include <iostream>
using namespace std;

void Merge(int a1[],int low,int mid,int high,int a2[])
{
    int i=low,k=low,j=mid+1;
   
    while((i<=mid)&&(j<=high))
    {
        if(a1[i]<=a1[j])
            a2[k++]=a1[i++];
        else
            a2[k++]=a1[j++];
    }
    while(i<=mid)
        a2[k++]=a1[i++];
    while(j<high)
        a2[k++]=a1[j++];
}

void merge_sort(int a[],int low,int high,int b[])
{
    int *t=new int[high-low+1]();
    if(low==high)
        b[low]=a[low];
    else
    {
        int mid=(low+high)/2;
        merge_sort(a,low,mid,t);
        merge_sort(a,mid+1,high,t);
        Merge(t,low,mid,high,b);
    }
    delete []t;
}

int main()
{
    int a[]={70,30,40,10,80,20,90,100,75,60,45};
    int length=sizeof(a)/sizeof(int);
    int b[length];
  
    merge_sort(a,0,length-1,b);
    for(int i=0;i<length;++i)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}
搜索更多相关主题的帖子: 归并 运行 int mid length 
2018-09-17 21:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-489849-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.403135 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved