#include<stdio.h>
void merging(int a[],int b[],int len_a,int len_b)
{
int c[len_a+len_b];
int i,j,k;
i=j=k=0;
while(i<len_a&&j<len_b)
{
if(a[i]<b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];
}
while(i<len_a)
c[k++]=a[i++];
while(j<len_b)
c[k++]=b[j++];
for(int r=0;r<len_a+len_b;r++)
a[r]=c[r];
}
void mergesort(int list[],int len)
{
if(len>1)
{
int* a=list;
int len_a=len/2;
int* b=list+len_a;
int len_b=len-len_a;
mergesort(a,len_a);
mergesort(b,len_b);
merging(a,b,len_a,len_b);
}
}
int main()
{
int list[]={5,2,6,0,3,9,1,7,4,8};
mergesort(list,sizeof(list)/sizeof(list[0]));
for(int i=0;i<sizeof(list)/sizeof(list[0]);i++)
printf("%d ",list[i]);
}
[https://blog.csdn.net/qq_43588377/article/details/120200611?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_antiscanv2&utm_relevant_index=2](https://blog.csdn.net/qq_43588377/article/details/120200611?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_antiscanv2&utm_relevant_index=2)
合并排序分治思想
最新推荐文章于 2024-07-13 15:11:03 发布