社区讨论

为什么会超时???已经很快了!!

P1923【深基9.例4】求第 k 小的数参与者 5已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo7n7han
此快照首次捕获于
2023/10/27 04:34
2 年前
此快照最后确认于
2023/10/27 04:34
2 年前
查看原帖
CPP
#include<iostream>
using namespace std;
int arr[5000005], k;
void qsort(int l, int r)
{
	int i = l, j = r, mid = arr[(l + r) / 2];
	do
	{
		while (arr[j] > mid)
			j--;
		while (arr[i] < mid)
			i++;
		if (i <= j)
		{
			swap(arr[i], arr[j]);
			i++;
			j--;
		}
	} while (i <= j);
	if (k <= j) qsort(l, j);
	else if (i <= k) qsort(i, r);
	else
	{
		cout<<arr[k];
		return;
	}
}
int main()
{
	int n;
	cin >> n >> k;
	for (int i = 0; i < n; i++)
	{
		cin >> arr[i];
	}
	qsort(0, n - 1);
}

回复

7 条回复,欢迎继续交流。

正在加载回复...