📄 ms.c
字号:
#include "stdio.h"
void merge(int a[],int b[],int l,int m,int r)
{
int i=l;
int j=m+1;
int k=0;
int q;
while((i<=m)&&(j<=r))
if(a[i]<=a[j])
b[k++]=a[i++];
else b[k++]=a[j++];
if(i>m)
for( q=j;q<=r;q++)
b[k++]=a[q];
else
for( q=i;q<=m;q++)
b[k++]=a[q];
}
void copy(int a[],int b[],int l,int r)
{
int i=l;
int k=0;
while(i<=r)
{
a[i++]=b[k++];
}
}
void mergeSort(int a[],int left,int right)
{
int b[10]={0};
if(left<right)
{
int i=(left+right)/2;
mergeSort(a,left,i);
mergeSort(a,i+1,right);
merge(a,b,left,i,right);//merge two parts to b
copy(a,b,left,right);//copy b to a
}
}
main()
{
int a[10]={10,78,43,9,0,2,3,4,2,1};
int i;
mergeSort(a,0,9);
for(i=0;i<10;i++)
printf("%d\n",a[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -