5.21排序与检索
时间:2022-07-22
本文章向大家介绍5.21排序与检索,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- 例题5-1 大理石在哪里
现有N块大理石,每一块大理石上写了一个非负整数。首先把各数从小到大排序,然后回答Q个为题。每个问题问是否有一块大理石写着某个数x,如果是,还需回答哪一块大理石上写着x。排序后的大理石从左到右编号1~N。(在样例中,为了节约篇幅,所有的大理石数合并到一行,所有问题也合并到一行。)
样例输入:
4 1//输入四块大理石,提一个问题
2 3 5 1//输入的大理石
5//问5在那一块大理石上
5 2
1 3 3 31
2 3
样例输出:
CASE# 1:
5 found at 4//4是按照升序排好之后的序号
CASE# 2:
2 not found
3 found at 3
- 代码
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 10000;
int main()
{
int n, q, x, a[maxn],kcase = 0;
while (scanf("%d%d", &n, &q) == 2 && n)//输入有效的两个数,并且n要大于零
{
printf("CASE# %d:n",++kcase);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
sort(a, a + n);//排序
while (q > 0)
{
scanf("%d",&x);
int p = lower_bound(a, a + n, x) - a;//按照升序排列a到a+n之间的数,排好之后返回一个地址
if (a[p] == x)
{
printf("%d found at %dn", x, p + 1);
}
else
{
printf("%d not foundn", x);
}
}
}
return 0;
}
- 【干货】如何写代码 -编程内功心法
- .NET中的异步编程下
- 深度学习数学基础一--最小二乘法
- 【LeetCode 344】关关的刷题日记26 Reverse String
- 基于AOE网的关键路径的求解
- 【LeetCode 122】关关刷题日记25-Best Time to Buy and Sell Stock II
- 【干货】python正则表达式应用笔记
- .NET跨平台之旅:将示例站点从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0
- .NET跨平台之旅:在Linux上以本地机器码(native)运行ASP.NET Core站点
- 【干货】基于pytorch的CNN、LSTM神经网络模型调参小结
- jenkins配置.net mvc网站
- 简述【聚类算法】
- word2vec理论与实践
- GMP大法教你重新做人(从入门到实战)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法