nth_element详解

2023-11-03

nth_element()是c++的STL库中的函数,作用是将数组中第k小的整数放在区间第k个位置

比如a[6]={2,5,6,4,7,8},使用nth_element(a,a+3,a+6)后,区间中第四个数,也就是a[3],会被放入数组中第四小的数,也就是6(这里是从0开始的)。

使用一次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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nth_element详解 的相关文章

随机推荐

  • Mac系统下android studio无法识别手机

    1 设置 辅助功能 开发人员工具 勾选 USB调试 允许模拟位置 这两项 2 将手机连接电脑 选择连接方式 媒体设备 MTP 3 打开mac电脑的 关于本机 系统报告 系统信息硬件中找到USB USB设备中找到连接的手机 在下面栏中找到 厂
  • db2 xml 转 table【XQuery系列】

    版本 DB2 Version 9 1 1 创建测试表 初始化数据 create table emp doc XML INSERT INTO EMP VALUES
  • 机考[71-80]

    华为机考 071 整数编码 072 整数对最小和 073 整型数组按个位值排序 074 执行时长 075 字符串变换最小字符串 076 字符串分割 077 字符串加密 078 字符串筛选排序 079 字符串统计 080 字符串序列判定 07
  • docker命令学习

    docker运行mysql并允许外网访问 docker run p 3306 3306 name mysql e MYSQL ROOT PASSWORD 123456 d docker io mysql latest p 外网映射 e设置m
  • 13. Jupyter Notebook介绍、安装及使用

    一 什么是Jupyter Notebook 1 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序 其可被应用于全过程计算 开发 文档编写 运行代码和展示结果 Jupyter Notebook官方介绍 简而言之 Jup
  • 《电子相框》--2.fb设备与图片显示

    接着上一篇博客的总结 继续项目的技术点展示 一 fb设备显示图片基础的步骤 1 确定打开的设备 一般设备在 dev fbxx 2 两个与显示有关的结构体变量 struct fb fix screeninfo finfo struct fb
  • ajax加密url参数,JS加解密URL参数encodeURIComponent() decodeURIComponent()

    参考1 http www w3school com cn js jsref encodeURIComponent asp 参考2 http www w3school com cn js jsref decodeURIComponent as
  • JS原型详解

    原型 原型是 JavaScript 面向对象特性中重要的概念 也是大家太熟悉的概念 因为在绝大多 数的面向对象语言中 对象是基于类的 例如 Java 和 C 对象是类实例化的结果 而在 JavaScript 语言中 没有类的概念 对象由对象
  • 用NCL将GRIB/GRIB2文件转成nc文件(批量转),JRA-55再分析为例

    背景 答主最近需要用到JRA 55再分析数据 但在面对GRIB数据格式时犯难了 便想把GRIB格式转成nc文件再做分析 因为nc文件很容易用python或Matlab处理 尝试了好些方法 发现先安装NCL再用ncl来批量转换 是一种比较便捷
  • windows下安装RabbitMQ

    目录 windows下载与安装 启动RabbitMQ 本篇博客下安装的均是目前最新版本 windows下载与安装 RabbitMQ官网 https www rabbitmq com 截止到现在RabbitMQ最新版本是3 10 7 Rabb
  • 【UE4】TSubclassOf模板类

    TSubclassOf是提供UClass类型安全性的模板类 模板类告知编辑器的属性窗口 只显示派生自AFPSProjectileActor的类 同时 这个参数在代码中也只接受派生自AFPSProjectileActor的类 当不加TSubc
  • docker标准输出日志存储位置,设置docker日志文件大小

    目录标题 docker日志存储位置 docker容器日志导致磁盘空间爆满 设置docker容器日志大小 全局设置 k8s中的容器日志 docker日志存储位置 在Linux系统中docker启动后日志存储在 var lib docker c
  • JSON parse error: Cannot deserialize value of type `java.util.Date` from String 2023-02-19 00:00:00

    问题描述 正常post请求然后接日期参数的时候报的异常 解决方案 添加 JsonFormat pattern yyyy MM dd HH mm ss timezone GMT 8 DateTimeFormat是用来格式化parm传参的 而接
  • 走进 San CLI(上):使用介绍

    本文是 San CLI 的使用和原理的第一篇 主要介绍 San CLI 的初衷和使用 下一篇介绍具体的实现原理 什么是 CLI CLI 是命令行界面 command line interface 的英文缩写 命令行界面是在图形用户界面得到普
  • Qt 实现按分钟更新显示当前时间

    以下方法分享按分钟更新时间 希望对大家有帮助 QTimer timer new QTimer this timer gt setSingleShot true connect timer SIGNAL timeout this SLOT u
  • npm未能加载Visual C++组件,解决办法win10

    错误提示如下 以管理员身份运行 Windows PowerShell npm install global production windows build tools npm install g node gyp
  • i2c-tools-v3.1.2移植

    1 工具 2 放到linux中解压 3 配置Makefile 4 make 成功后会在tools目录下生成 i2cdetect i2cdump i2cget i2cset等工具 5 将i2cdetect放到终端
  • postgresql 操作查询jsonb数据

    1 操作键值对 PostgreSQL 对 jsonb 类型的筛选查询可以使用 gt 或者 gt gt 操作符 gt 操作符用于通过 JSON 对象中的键来获取对应的值 gt gt 操作符可以将获取到的值转化为字符串类型 例如 下面是一个包含
  • UI自动化测试定位元素工具--Weditor

    Weditor 前置条件 1 安装Pycharm 2 终端中输入 pip install weditor安装weditor 使用方法 weditor启动 python m weditor 连接设备成功后 可以看到入下图 主要有5个区域 红色
  • 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 会被放入数组中第四小的数