求区间第k小:
nth_element(a,a+k,a+n)
求区间第k大:
nth_element(a,a+n-k,a+n)
复杂度:O(n)
k范围:[0,n-1]
/*
求区间[a[0],a[4]]的第0小值,此出输出1
*/
int a[5]={3,2,1,4,5};
signed main()
{
nth_element(a,a+0,a+5);
cout<<a[0];
return 0;
}
参考:Link
本文介绍了一种使用C++标准库函数nth_element求解区间内第K小和第K大元素的方法,该方法的时间复杂度为O(n),适用于快速查找有序序列中的指定位置元素。
求区间第k小:
nth_element(a,a+k,a+n)
求区间第k大:
nth_element(a,a+n-k,a+n)
复杂度:O(n)
k范围:[0,n-1]
/*
求区间[a[0],a[4]]的第0小值,此出输出1
*/
int a[5]={3,2,1,4,5};
signed main()
{
nth_element(a,a+0,a+5);
cout<<a[0];
return 0;
}
参考:Link
288

被折叠的 条评论
为什么被折叠?