求帮助
查看原帖
求帮助
1272396
huochairenzhishang楼主2024/5/13 17:51
#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

2024/5/13 17:51
加载中...