| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:【代码】快速并归算法
取消只看楼主 加入收藏
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
结帖率:73.33%
收藏
 问题点数:0 回复次数:1 
【代码】快速并归算法
不知道是不是原创,随性写了写。
分析了4中情况
a没有遍历完+b没有遍历完且b长度大于a
a没有遍历完且a长度大于b+b遍历完
a遍历完+b没有遍历完
a,b有一个遍历完且a长度==b
int _tmain(int argc, _TCHAR* argv[])
{
    int a[]={2,4,5,6,12,13};
    int b[]={1,3,4,7,8,9,10,11,12,13};

    int la=sizeof(a)/sizeof(a[0]);
    int lb=sizeof(b)/sizeof(b[0]);
    int lc=la+lb;
    int *c=new int[lc];

    int i;
    int m,n;

    m=n=i=0;
    while(i<lc)
    {
        if(m<la && n<lb)
        {
            if( a[m]>b[n])
            {
                c[i]=b[n];
                n++;
            }
            else
            {
                c[i]=a[m];
                m++;
            }
        }
        else if (m==la && la<lb)
        {
            c[i]=b[n++];
        }
        else if (n==lb && lb<la)
        {
            c[i]=a[m++];
        }
        else
        {
            if(m<n)
            {
                c[i]=a[m++];
                printf("#");
            }
            else
            {
                c[i]=b[n++];
                printf("*");
            }
            
        }
        printf("%3d",c[i]);
        i++;
    }

    getch();
    return 0;
}

[ 本帖最后由 我是菜鸟哦 于 2012-7-23 00:09 编辑 ]
搜索更多相关主题的帖子: 快速 
2012-07-23 00:00
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
没有有意见?

偶是菜鸟鸟偶惧WHO?!!!!
2012-07-23 16:39
快速回复:【代码】快速并归算法
数据加载中...
 
   



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

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