资源简介
这是关于归并排序算法用C语言实现的代码,是经过测试正确的,希望能对大家的学习有所帮助。
代码片段和文件信息
#include
#include
#include
#define N 10
int a[N]b[N];
/*a[N]是一个全局数组,它含有两个放在a[low]到a[mid]和a[mid+1]到a[high]中
*的已分类的子集合,目标时将这两个已分类的集合归并成一个集合,并放在a[N]中
*使用一个辅助数组b[N]
*/
void MERGE(int lowint midint high); //函数声明
void MERGESORT(int lowint high)
{
if(low {
int mid = (int)((low+high)/2); //求这个集合的分割点
MERGESORT(lowmid); //将一个子集合分类
MERGESORT(mid+1high); //将另一个子集合分类
MERGE(lowmidhigh); //归并两个已分类的子集合
}
}
void MERGE(int lowint midint high)
{ //low<=mid int hijk;
h=low;
i=low;
j=mid+1;
while(h<=mid&&j<=high)//当两个集合都没有取尽时
{
if(a[h]<=a[j])
{
b[i]=a[h];
h=h+1;
}
评论
共有 条评论