基础编程题目集 6-13 折半查找 (15分)

題解:二分
#include <iostream>
using namespace std;
#define MAXSIZE 50
typedef int KeyType;
typedef struct
{
KeyType key;
} ElemType;
typedef struct
{
ElemType *R;
int length;
} SSTable;
void Create(SSTable &T)
{
int i;
T.R = new ElemType[MAXSIZE + 1];
cin >> T.length;
for (i = 1; i <= T.length; i++)
cin >> T.R[i].key;
}
int Search_Bin(SSTable T, KeyType k);
int main()
{
SSTable T;
KeyType k;
Create(T);
cin >> k;
int pos = Search_Bin(T, k);
if (pos == 0)
cout << "NOT FOUND" << endl;
else
cout << pos << endl;
return 0;
}
int Search_Bin(SSTable T, KeyType k)
{
int left = 1;
int right = T.length;
int mid = 1;
bool flag = false;
while (left < right)
{
mid = (left + right) / 2;
if (T.R[mid].key == k)
{
flag = true;
break;
}
if (T.R[mid].key > k)
{
right = mid - 1;
}
else
{
left = mid + 1;
}
}
if (flag)
{
return mid;
}
else
{
return 0;
}
}
智能推荐
折半查找(二分查找)
文章目录 1 原理 2 实现 2.1 原理代码实现 2.2 具体应用 2.3 扩展 1 原理 适用于 经常查找的,但是 不变的(增删)的 有序列表 算法思想: 有序的序列,每次都是以序列的中间位置的数来与待查找的关键字进行比较,每次缩小一半的查找范围,直到匹配成功 优缺点: 优点:比较次数少,查找速度快,平均性能好 缺点:要求待查表为有序表,且插入删除困难 折半查找方法适用于不经常变动而查找频繁的...
Docker-Compose部署nginx 和lnmp
Docker-Compose tomcat lnmp tomcat 使用Docker-Compose部署Nginx代理Tomcat集群,实现负载均衡 在这个目录下创建多个目录 切换到nginx目录修改nginx的主配置文件: [root@host1 compose]# cd nginx/ [root@host1 nginx]# vim default.conf 在末尾添加: 修改: 切换到tmca...
19-20年月度行业分析
Table of Contents 1 对各一级行业分析 2 对女装行业进行分析 对各一级行业分析 platform cid industry category themonth 销售额 访客 客群指数 行业简称 月 年 年月 0 天猫 50010368 ZIPPO/瑞士军刀/眼镜 太阳眼镜 2020-01-01 62484514.13 6663217 ...
Python数据分析入门
博客原文:https://ouduidui.cn/blog/detail?blogId=5fcddf5c61ae700fd80190db 基础知识 数据的分类 数值型数据 表示大小或多少的数据 例子:年龄、年购买量 数值型数据分析方法 最小值和最大值:查看这两个值的目的是为了能够确定一组数据的上界和下界。 **平均值:**平均值可以反映一组数据的综合水平。 **中位数:**中位数和平均数一样都是用...
1.Java基础入门 -(10)流程控制-循环嵌套结构
什么是循环嵌套? 循环嵌套就是在循环体内,包含一个完成的循环结构。(我们在if嵌套里讲过) 示例1:使用双重循环输出九九乘法表。 运行结果: 示例2:请打印直角三角形。 (这里用 . 代替 空格 方便演示) 运行结果: 示例3:请打印等腰三角形。 运行结果: 示例4:请输出1-100之间的素数。 质数又称为素数,是一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数...
猜你喜欢
AlertDialogDemo自定义使用方法
效果图如下: Dialog左边的按钮忘记支付密码写错了 已修复 图就不改了 功能需求点击重试 再次打开输入支付密码页面 点击忘记支付密码跳转密码设置页面 此Demo只为演示AlertDialog的使用方法以及资源属性设置 需要其他功能请留言说明 这是一个支付密码输入失败的弹框 自定义了基本属性 XMl布局dialog_common 圆角框的属性commen_dialog_bg Styledialo...
2020网鼎杯---Java文件上传wp
前言 一篇文章读懂Java代码审计之XXE看过我这篇博客应该不难,没看过建议在看看。 题解 下载了所有的class发现需要上传xlsx poi 开头必须是execl 新建execl -1.xlsx文件,修改后缀名execl -1.xlsx.zip解压。 修改[Content-Types].xml 重新打包成excel-1.xlsx,文件名一定不能错。 在服务器上新建一个evil.etd文件。 然后...
关于串口数据接收出错问的问题(RS232、RS422、UART)
这两天调试串口驱动,串口驱动应该是很简单的啊,但是发现数据接收的时候,总是偶尔会出现错误,经过不断的排查,终于找到了问题的关键所在。 一段串口的verilog代码如下: 如果采样上面的方式对串口数据进行接收,就会发现串口数据总是偶尔出现个别的数据接收出错。通过ila抓波形,发现有如下图一的异常情况出现,这个时候uart_rx_i已经拉低了,但是却没有检测到下降沿,就会导致数据接收出错,这是由于亚稳...
入侵别人电脑后你必须要会的Linux与window系统用命令行下载网络资源的15种方式
我花了一天时间精心整理本文,有百度的经典方案,有老师的精心传授,也有自己的实践总结,如果觉得有用就转发收藏吧️别忘点赞哦这样可以帮助到更多的人 window系统常见下载方式 FTP脚本 vbs脚本 bitsadmin命令 $client命令 Linux系统常见下载方式 wget curl lynx fetch Axel aria2 youtube-dl 双方均可用 links links2 pyt...
10-python之常见的数据类型,如何获取变量的类型
文章目录 1. python 常见的数据类型 2. 如何获取一个变量的类型---type函数 1. python 常见的数据类型 2. 如何获取一个变量的类型—type函数 输出的结果...
