📄 mergesort.h
字号:
#include <iostream.h>
void Merge(int *a, int *b, int l, int m, int n)
{
int i=l,j=m+1,k=l-1;
while(i<=m && j<=n)
{
if(a[i]<a[j])
b[++k]=a[i++];
else
b[++k]=a[j++];
}
if(i<=m)
for (int t=i;t<=m;t++)
b[++k]=a[t];
if(j<=n)
for (int t=j;t<=n;t++)
b[++k]=a[t];
for(i=l;i<=n;i++)
a[i]=b[i];
}
void MergeSort(int *A, int *B, int l, int h)
{
if(l == h)
return;
int m = (l+h)/2;
MergeSort(A, B, l, m);
MergeSort(A, B, m+1, h);
Merge(A, B, l, m, h);
}
//接口函数
void mergesort(int *a,int num)
{
int *temp;
temp = new int [num];
if (temp != NULL)
{
MergeSort(a,temp,0,num-1);
for (int i=1;i<num;i++)
a[i]=temp[i];
delete temp;
}
else
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -