本文介绍了什么是未定义的引用此程序中的mergesort函数错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
#include<stdio.h>
#include<stdlib.h>
void merge(int left[],int right[],int a[],int half);
void mergesort(int a[],int n);
int main()
{
int a[6]={3,4,8,1,2,4}; int i;
mergesort(a,6);
for(i=0;i<6;i++)
printf("%d\t",a[i]);
return 0;
}
void merge(int left[],int right[],int a[],int half)
{
int i=0,j=0,k=0;
while(i<half&&j<half)
{
if(left[i]<right[j])
{
a[k]=left[i];
i++;
}
if(right[j]<left[i])
{
a[k]=right[j];
j++;
}
}
if(i==half)
{
for(j=j;j<half;j++)
{
a[k]=right[j];
k++;
}
}
if(j==half)
{
for(i=i;i<half;i++)
{
a[k]=left[i];
k++;
}
}
void mergesort(int a[],int n)
{
int half=n/2,i;
int left[half];
int right[half];
for(i=0;i<half;i++)
left[i]=a[i];
for(i=0;i<half;i++)
right[i]=a[i];
mergesort(left,half);
mergesort(right,half);
merge(left,right,a,half);
}
}
推荐答案
这篇关于什么是未定义的引用此程序中的mergesort函数错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!