问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据结构问题(查找)

发布网友 发布时间:2022-05-17 04:13

我来回答

1个回答

热心网友 时间:2023-10-03 03:57

1、二分查找(Binary Search)
二分查找又称折半查找,它是一种效率较高的查找方法。
二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。

2、二分查找的基本思想
二分查找的基本思想是:(设R[low..high]是当前的查找区间,已经按升序排好)
(1)首先确定该区间的中点位置:

(2)然后将待查的K值与R[mid].key比较:若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找,具体方法如下:
①若R[mid].key>K,则由表的有序性可知R[mid..n].keys均大于K,因此若表中存在关键字等于K的结点,则该结点必定是在位置mid左边的子表R[1..mid-1]中,故新的查找区间是左子表R[1..mid-1]。
②类似地,若R[mid].key<K,则要查找的K必在mid的右子表R[mid+1..n]中,即新的查找区间是右子表R[mid+1..n]。下一次查找是针对新的查找区间进行的。
因此,从初始的查找区间R[1..n]开始,每经过一次与当前查找区间的中点位置上的结点关键字的比较,就可确定查找是否成功,不成功则当前的查找区间就缩小一半。这一过程重复直至找到关键字为K的结点,或者直至当前的查找区间为空(即查找失败)时为止。

最少的比较次数是当然是一次就可以了;
如果是问最多次数应该就是log2(100)=7(100取2的对数)

参考资料:http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.2.2.1.htm

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见穿堂风 没有爱情我们一样会快乐的对吗 没有爱情的人会快乐么? 解除合同的效力有什么 合同解除会产生什么法律效力 合同解除后,哪些条款仍具效力? 合同解除产生哪些效力呢 民法典中合同解除产生哪些效力 解除合同的效力有哪些 济南七中学校怎么样 父亲节到底是好多号? 婚礼播放的短片音乐 二级建筑师现在市场行情和前景怎么样? 横幅用自己先做好图片吗? 用jquery 取Repeater中的textbook的id 在密度测定时温度计的作用是什么? 怎样识别数码相机是不是翻新机 各种类型温度计及其主要功能说明。 温度计的功能原理!急呀!~ 怎么识别相机是新机,还是翻新机 怎样在同一部手机上用两个微信!怎么才能下载另一个! 猪腰的营养价值 猪腰子怎么洗 怎样在同一部手机上用两个微信!怎么才能下载另一个! 如何把视频号上的视频转发到公众 jquery怎样给repeater赋值? 猪皮炒辣椒好吃吗 猪皮炒辣椒放酱油吗 辣椒炒猪皮的做法 辣椒炒猪皮怎么做 朋友们,我昨天在同事的杯子里面放了好多泻药,今天同事请假说拉肚子住院了没有来,我是不是应该说什么好 哪个数据结构查找的时间复杂度最低 jquery怎么给repeater包住的tr加样式 手指接触洗洁精和油渍后,出现脱皮,用什么药 删除微信好友不记得怎么加回来? 洗洁精用多了,手要起皮了,有没有恢复的方法? 用了洗洁精,手蜕皮怎么办 如果有主妇手怎么改善(手沾洗洁精,洗衣粉,肥皂水就会脱皮和起水泡) 手指一直在脱皮和经常用洗洁精刺激到皮肤有关吗~?用什么药膏或护手霜可以修护? 用洗洁精手上起皮是什么问题 洗洁精用太多,造成手掌脱皮。有什么简单的方法可以好起来吗? 前几天搞卫生,手弄了白醋洗洁精苏打粉混合的液体,手皲裂脱皮怎么办? 手上脱皮怎么办,就是那种一沾洗衣粉洗洁精什么的就脱皮的类型,求帮助 手成天泡在洗洁精里,脱皮了怎么办? 求解答,厌食症能吃什么东西? 得厌食症怎么办 怎么让厌食症病人吃点东西? 炒肉时加入鸡蛋会更滑嫩,是因为蛋清的作用吗,加入蛋黄会如何? 厌食怎么办 微信服务号能改为订阅号吗?求助 省长是副部级吗