nth_element详解
生活随笔
收集整理的這篇文章主要介紹了
nth_element详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
nth_element()是c++的STL庫中的函數,作用是將數組中第k小的整數放在區間第k個位置
比如a[6]={2,5,6,4,7,8},使用nth_element(a,a+3,a+6)后,區間中第四個數,也就是a[3],會被放入數組中第三小的數,也就是6。
使用一次nth_element()的時間復雜度為O(n)O(n)O(n)
code
#include<bits/stdc++.h> using namespace std; int a[6]={2,5,6,4,7,8}; int main() {nth_element(a,a+3,a+6);for(int i=0;i<6;i++){printf("%d ",a[i]);}return 0; }輸出:
5 2 4 6 7 8如果a數組不從0開始,則需做一些調整
code
#include<bits/stdc++.h> using namespace std; int n,k,b[15]; int main() {scanf("%d%d",&n,&k);for(int i=1;i<=n;i++){scanf("%d",&b[i]);}nth_element(b+1,b+k,b+n+1);for(int i=1;i<=n;i++){printf("%d ",b[i]);}printf("\n");printf("%d",b[k]);return 0; }輸入:
8 4 7 5 3 8 4 6 2 9輸出:
3 2 4 5 8 6 7 9 5總結
以上是生活随笔為你收集整理的nth_element详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网产品的定义及分类
- 下一篇: 2020-11-25博客营销及软文营销价