找到第k小的数

int main()
{
	int n,k;
	scanf("%d %d", &n, &k);
	vector<int> s(n);
	for (auto& n : s)
	{
		scanf("%d", &n);
	}
	nth_element(s.begin(), s.begin() + k, s.begin() + n);
	printf("%d\n", s[k]);

	return 0;
}

利用nth_element(数组名,数组名+第几位数,数组名+数组大小)
将第K小的数放在数组名[k]的位置,减少复杂度

posted @ 2023-10-21 19:36  一只傲娇璇  阅读(7)  评论(0编辑  收藏  举报