#include <stdio.h>
#include <iostream>
using namespace std;
int part(int* num, int owl, int len)
{
int i = owl, j = len - 1;
int val = num[i];
while (i < j)
{
while (i < j && num[j] >= val)
j--;
if (i < j) {
swap(num[j], num[i++]);
}
while (i < j && num[i] < val)
i++;
if (i < j) {
swap(num[i], num[j--]);
}
}
return i;
}
void fun(int* num, int owl, int len)
{
int mid;
if (len > owl) {
mid = part(num, owl, len);
fun(num, owl, mid - 1);
fun(num, mid + 1, len);
}
}
int main(void)
{
int n, m;
scanf("%d %d", &n, &m);
int* num = new int[m];
int i;
for (i = 0; i < m; i++)
cin >> num[i];
fun(num, 0, m);
printf("%d", num[0]);
for (i = 1; i < m; i++)
printf(" %d", num[i]);
return 0;
}
为啥只能20