📄 merge.cm
字号:
void in(int a[], int n)
{
int i;
i = 0;
while (i < n)
{
a[i] = input();
i = i + 1;
}
return;
}
void out(int a[], int n)
{
int i;
i = 0;
while (i < n)
{
output(a[i]);
i = i + 1;
}
return;
}
void mergesort(int a[], int n)
{
if (n > 1)
{
int b[50];
int c[50];
int i;
int j;
int k;
int r;
int s;
int t;
r = n / 2;
s = n - n / 2;
i = 0;
while (i < r)
{
b[i] = a[i];
i = i + 1;
}
while (i < n)
{
c[i - r] = a[i];
i = i + 1;
}
mergesort(b, r);
mergesort(c, s);
i = j = k = 0;
t = 1;
while (t==1)
{
if (b[i] < c[j])
{
a[k] = b[i];
i = i + 1;
}
else
{
a[k] = c[j];
j = j + 1;
}
k = k + 1;
if (i >= r)
t = 0;
if (j >= s)
t = 0;
}
while (i < r)
{
a[k] = b[i];
i = i + 1;
k = k + 1;
}
while (j < s)
{
a[k] = c[j];
j = j + 1;
k = k + 1;
}
}
return;
}
void main(void)
{
int a[100];
int n;
n = input();
in(a, n);
mergesort(a, n);
out(a, n);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -