| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 734 人关注过本帖
标题:[求助]归并排序求助
只看楼主 加入收藏
zhouyou1230
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-9-5
收藏
 问题点数:0 回复次数:2 
[求助]归并排序求助
求归并排序算法的比较和交换次数,达人赐教~~~
2005-09-05 09:50
shuzhihai
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-23
收藏
得分:0 

#include<stdio.h>
void csort(int,int); //归并排序
void comf(int,int,int); //将数整理成有序数列
#define N 10000
int a[N],b[N];
int main()
{
int i,n;
scanf("%d",&n);
if(n<N)
{
for (i=0;i<n;i++)
scanf("%d",&a[i]);
csort(0,n-1);
for(i=0;i<n;i++)
printf("%d\n",a[i]);
}
else
return 0;
}//main

void csort(int low,int high)
{
int mid;
if(low<high)
{
mid=(low+high)/2;
csort(low,mid);
csort(mid+1,high);
comf(low,mid,high);
}
}//csort

void comf(int low,int mid,int high)
{
int p=low,q=mid+1;
int r=low;
while(p<=mid&&q<=high)
{
if(a[p]<a[q])
b[r++]=a[p++];
else b[r++]=a[q++];
}
if(p<=mid)
{
while(r<=high)
b[r++]=a[p++];
}
else
{
while(r<=high)
b[r++]=a[q++];
}
for(r=low;r<=high;r++)
a[r]=b[r];
}//comf

vc++通过了……

2007-04-23 21:48
xingfulovexi
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2012-1-18
收藏
得分:0 
求每次排序的结果怎么输出,该怎么改这个程序啊
2012-05-17 16:44
快速回复:[求助]归并排序求助
数据加载中...
 
   



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

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