| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 448 人关注过本帖
标题:初学归并排序,但输出无结果...
取消只看楼主 加入收藏
Buger
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2013-3-20
结帖率:84.62%
收藏
已结贴  问题点数:10 回复次数:4 
初学归并排序,但输出无结果...
程序代码:
#include <stdio.h>
#include <malloc.h>
void Merge(int c[], int d[], int l, int m, int r) {
    int i = 1, j = m + 1, k = l, q;
    while((i <= m) && (j <= r))
        if(c[i] <= c[j]) d[k++] = c[i++];
        else d[k++] = c[j++];
    if(i > m)
        for(q = j; q <= r; q++) d[k++] = c[q];
    else
        for(q = i; q <= m; q++) d[k++] = c[q];
}
void Mergepass(int x[], int y[], int s, int n) {
    int i = 0, j;
    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(j = i; j <= n - 1; j++) y[j] = x[j];
}
void MergeSort(int a[], int n) {
    int *temp=(int*)malloc(20), s = 1;
    while(s < n) {
        Mergepass(a, temp, s, n);
        s += s;
        Mergepass(temp, a, s, n);
        s += s;
    }
}
int main() {
    int a[] = {3, 5, 3, 6, 4, 7, 5, 7, 4}, i;
    MergeSort(a, 9);
    for(i = 0; i < 9; i++) printf("%d ", a[i]);
    printf("\n");
    return 0;
}
哪位大侠帮忙看看...
2013-03-22 21:07
Buger
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2013-3-20
收藏
得分:0 
自己顶自己....
2013-03-22 21:22
Buger
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2013-3-20
收藏
得分:0 
你调试好了再发表也好啊,免得我又把代码搞乱....,貌似不行
2013-03-22 22:03
Buger
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2013-3-20
收藏
得分:0 
呵呵...
2013-03-22 22:35
Buger
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2013-3-20
收藏
得分:0 
自己搞定了,多谢
2013-03-22 22:49
快速回复:初学归并排序,但输出无结果...
数据加载中...
 
   



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

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