- 15
- 0
- 约2.67千字
- 约 21页
- 2017-05-26 发布于河南
- 举报
二分查找及其应用
二分查找及其应用 — By ElemenT 刷题太无聊?我们玩游戏吧! 相信大家都玩过猜数字的 游戏。两人游戏,A同学在心 里默念一个整数n (1 = n = 1000)。 B同学猜n是多少。 同时如果B没有猜对,A告诉 他这个数比默念的数高了还 是低了。 看起来好厉害的样子 其实并不是,下面将引入“二分搜索”的概念。 如上述的游戏中,第一次应该取多少呢? 500! 很不巧并不是500,而是一个比500大的数。 虽然运气不好,但是B将区间的范围砍掉了一半! 那么下一次B该猜什么。。。 大家已经发现,问题变成了501-1000之间猜一个数,那么应该猜(501+1000)/2 = 750!如果运气还是不好,,又猜小了.没关系!只猜了仅仅两次,我们就将区间缩小为 751--1000.那么继续下去... 我们发现,每次可以将区间缩小为原来的一半。递减速度显然就是log级别的。log(1000)向上取整只有10.那么我们一定可以在10次之内猜出这个数。 给定一个有序序列a0,a1,a2...aN,给出一个目标值tg,在序列中查找是否存在tg,如果存在,返回tg的下标。如何快速查找? 我们必须看到数列是有序的 充分利用有序的条件,类似猜数一样查找tg。 复杂度为log(n)。 那么我们来看看如何实现二分查找。 int bs(int *a, int n, int tg) {
您可能关注的文档
- kerberos_主从配置.docx
- 衡重式、仰斜式挡土墙施工方案-英文版.docx
- 桩板结构托梁、承载板技术交底.docx
- 利用ArcGIS从DEM提取高程点至CAD.docx
- 4-有限域-代数基础-域扩张.ppt
- 17-GPS高程拟合.ppt
- 3-1、金蝶K3 ERP课件--供应链及应收应付系统.ppt
- 9.第九章数字高程模型(2学时).ppt
- 400用户使用操作说明.pptx.ppt
- 《g_k_h》教学课件.ppt
- 11、11——11、12第10周八语PAD周末作业-好学.docx
- 2026年《你让我的世界很精彩话题作文》.docx
- 11、11——11、12第10周八语PAD周末作业-命题合理.docx
- 二建机电实务真题及答案详细分析案例.docx
- 11、11——11、12第10周八语PAD周末作业-好学笃行.docx
- 2026年伊春市友好区住房和城乡建设局人员招聘考试参考题库及答案解析.docx
- 2026年《宝葫芦的秘密》小学生读后感500字.docx
- 2026年《高三学年的政治最主要的知识点》.docx
- 二开发与编程软件考试软件工程实践与案例分析通关必备模拟试卷2.docx
- 2026年以节俭为主题作文.docx
原创力文档

文档评论(0)