试了一下 N的值为103一下都是可以的超过了103就算不出来了
#define N 150
#include <stdio.h>
void insertion_merge_sort(int array[],int p,int r);
void insertion_sort_merge(int array[],int p,int r);
int main(void)
{
int i;
int array[N];
for(i=0;i<N;i++)
{
array[i]=i;
}
insertion_merge_sort(array,1,N);
for(i=0;i<N;i++)
{
printf("%d\n",array[i]);
}
return 0;
}
void insertion_merge_sort(int array[N],int p,int r)
{
if((p-r)>=7)
{
int q=(p+q)/2;
insertion_merge_sort(array,p,q);
insertion_merge_sort(array,q+1,r);
merge(array,p,q,r);
}
insertion_sort_merge(array,p,r);
}
void insertion_sort_merge(int array[N],int p,int r)
{
int j;
int i;
int key;
for(j=p;i<r;i++)
{
key=array[j];
i=j-1;
while(i>=0&&array[i]>key)
{
array[i+1]=array[i];
i=i-1;
}
array[i+1]=key;
}
}