80分求助 第三个数据为什么过不了
查看原帖
80分求助 第三个数据为什么过不了
1217596
lqx1314楼主2024/6/16 13:32
#include <stdio.h>
#include <stdio.h>
int a[5000005] = { 0 };
void quicksort(int* a, int left, int right, int m)
{
	if (left > right) return;
	int key = a[(left + right) / 2], i = left, j = right;
	while (i <= j)
	{
		while (key > a[i])i++;
		while (key < a[j])j--;
		if (i <= j)
		{
			int tmp = a[i];
			a[i] = a[j];
			a[j] = tmp;
			i++;
			j--;
		}
	}
		if ((i - 1) == m) printf("%d", key);
		else if ((i - 1) < m) quicksort(a, i, right, m);
		else if ((i - 1) > m) quicksort(a, left, j, m);

}
int main()
{
	int n, m;
	scanf("%d %d", &n, &m);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
	}
	quicksort(a, 0, n - 1, m);
	return 0;

}
2024/6/16 13:32
加载中...