归并排序问题

[复制链接]
查看11 | 回复1 | 2008-8-14 19:53:03 | 显示全部楼层 |阅读模式
/* Note:Your choice is C IDE */
#include "stdio.h"
#define MAXSIZE 5
void Merger(int am[],int bm[],int s,int m,int f)
{
int i,k,j=m+1;
i=k=s;
while(i<=m&&j<=f)
{
if(am<=am[j])

bm[k++]=am[i++];


else

bm[k++]=am[j++];

}
if(i<=m)
while(i<=m)

bm[k++]=am[i++];
else
while(j<=f)

bm[k++]=am[j++];

}
void MergerSort(int am[],int bm[],int s,int f)
{
int m;
if(s==f)

bm=am;
else{

m=(s+f)/2;

MergerSort(am,bm,s,m);

MergerSort(am,bm,m+1,f);

Merger(bm,am,s,m,f);

}
}
void main()
{

int a[MAXSIZE],b[MAXSIZE],i;

for(i=0;i<MAXSIZE;i++)

scanf("%d",&a);

MergerSort(a,b,0,MAXSIZE-1);

for(i=0;i<MAXSIZE;i++)

printf("%d ",a);
}
此程序为归并排序,输入5 4 3 2 1,输出2 1 5 4 3
本人能力有限,实在是调试不出来其中的Bug,请高手指教一下。

回复

使用道具 举报

千问 | 2008-8-14 19:53:03 | 显示全部楼层
去oibh的论坛上问问吧,比在这里要好的多,而且,一般情况很少有人会帮你直接调代码的,程序风格不同,很费事的。我是pascal,爱莫能助。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行