一些STL知识填坑
参考:https://oi-wiki.org
nth_element
作用是找到选定区间内第 大的数,并将所有比它小的数与比它大的数分别置于两侧,返回它的地址。原理是未完成的快速排序,时间复杂度:期望 O(n)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include<iostream> #include<algorithm> using namespace std; int main() { int a[]={3,1,5,4,2,6,8,7,9}; nth_element(a, a+5, a+9); for(int i=0;i<9;i++) cout << a[i] << " "; cout<<endl<<"输出第五大的数: "<<a[4]<<endl; return 0; }
|
stable_sort
稳定的O(nlogn)排序,即保证相等元素排序后的相对位置与原序列相同。
partial_sort
将序列中前k小元素按顺序置于前k个位置,后面的元素不保证顺序。时间复杂度:O(nlogk)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include<iostream> #include<algorithm> using namespace std; int main() { int a[]={3,1,5,4,2,6,8,7,9}; partial_sort(a, a+3, a+9); for(int i=0;i<9;i++) cout << a[i] << " "; return 0; }
|