| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 430 人关注过本帖
标题:麻烦大家帮忙看看这个合并排序程序哪里错了
取消只看楼主 加入收藏
sourse
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-18
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
麻烦大家帮忙看看这个合并排序程序哪里错了
程序可以运行,但是结果不正确,弄了很久都不知道哪里错了,求助下大家。。谢谢

程序代码:
#include <stdio.h>

int a[]={78,15,24,16,89,135,4,66};
int b[8];

void merge1(int low,int mid,int high)
{
    int i=low,j=mid+1;
    int    k=0;
    while (i < mid && j < high)
        if (a[i]<a[j])
            b[k++]=a[i++];
        else
            b[k++]=a[j++];

    while (i<mid) 
        b[k++]=a[i++];
    while (j<high) 
        b[k++]=a[j++];
}

void sort1(int low,int high)
{
    if(low<high)
    {
        int mid=(low+high)/2;
        printf("sort (%d-%d, %d-%d) %d %d %d %d %d %d %d %d\n", 
               low, mid, mid+1, high, 
               b[0],b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
        sort1(low,mid);
        sort1(mid+1,high);
        merge1(low,mid,high);
        printf("merge (%d-%d, %d-%d) to %d %d %d %d %d %d %d %d\n", 
               low, mid, mid+1, high, 
               b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
    }

}

void main()
{
    sort1(0,7);
}
搜索更多相关主题的帖子: color 
2011-09-18 03:48
sourse
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-18
收藏
得分:0 
回复 2楼 玩出来的代码
呃,终于弄明白了,给绕进去了。。谢谢哈。。
2011-09-18 13:36
快速回复:麻烦大家帮忙看看这个合并排序程序哪里错了
数据加载中...
 
   



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

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