大佬们,是我题意没有理解清楚吗,最小的数是第0小,为啥提交完一个都不对呢
查看原帖
大佬们,是我题意没有理解清楚吗,最小的数是第0小,为啥提交完一个都不对呢
762458
ln2____楼主2023/7/21 12:18
#include <iostream>
#include <string>

const int N = 50000010;
int k;
int arr[N];
void swap(int& a, int&b)
{
	int temp = a;
	a = b;
	b = temp;
}
int qu_sort(int arr[], int l, int r, int k)
{
	if (l == r)
	{
		return arr[l];
	}
	int i = l - 1, j = r + 1, x = arr[l + r >> 1];
	while (i < j)
	{
		do
		{
			i++;
		} while (arr[i] < x);
		do
		{
			j--;
		} while (arr[j] > x);
		if (i < j)
		{
			swap(arr[i], arr[j]);
		}
	}
	int len = r - l + 1;
	if (k < len)
	{
		qu_sort(arr, l, j, k);
	}
	else
	{
		qu_sort(arr, j + 1, r, k - len);
	}
}
int main()
{
	int i, n;
	scanf("%d %d\n", &n, &k);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	std::cout << qu_sort(arr, 0, n - 1, k + 1);
	
	system("pause");
	
	return 0;
}
2023/7/21 12:18
加载中...