| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 306 人关注过本帖
标题:合并算法问题
只看楼主 加入收藏
k1868548
Rank: 1
来 自:电子科大
等 级:新手上路
帖 子:6
专家分:4
注 册:2011-10-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
合并算法问题
程序代码:
#include <iostream>
using namespace std;
#define MAX 10
void Merge(int c[],int d[],int l,int m, int r)
{
    int i=1,j=m+1,k=1;
    while((i<=m)&&(j<=r))
    {
        if(c[i]<=c[j])
            d[k++]=c[i++];
        else
            d[k++]=c[j++];
    }
    if(i>m)
    {
        for(int q=j;q<=r;q++)
            d[k++]=c[q];
    }
    else
    {
        for(int q=i;q<=m;q++)
            d[k++]=c[q];
    }

}
void MergePass(int x[],int y[],int s,int n)
{
    int i=0;
    while(i<=n-2*s)
    {
        Merge(x,y,i,i+s-1,i+2*s-1);
        i=i+2*s;
    }
    if(i+s<n)
        Merge(x,y,i,i+s-1,n-1);
    else
        for(int j=i;j<=n-1;j++)
        {
            y[j]=x[j];
        }
}
void MergeSort(int a[],int n)
{
    int *b= new int[n];
    int s=1;
    while(s<n)
    {
        MergePass(a,b,s,n);
        s+=s;
        MergePass(b,a,s,n);
        s+=s;
    }
}

void main()
{
    int a[MAX];
    int b[MAX];
    int i;
    cout<<"请输入"<<MAX<<"个数"<<endl;
    for(i=0;i<MAX;i++)
    {
        cin>>a[i];
    }
    MergeSort(a,MAX);
    cout<<"排序结果"<<endl;
    for(i=0;i<MAX;i++)
    {
        cout<<a[i]<<" ";
    }
}



按照说明写的,可是不对。求指导
搜索更多相关主题的帖子: color 
2012-11-12 15:20
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:20 
回复 楼主 k1868548
写代码的时候  稍加点注释  说明下 函数的功能   参数的用法
2012-11-14 10:19
快速回复:合并算法问题
数据加载中...
 
   



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

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