七爪源码:等于搜索模板
发布时间:2024-12-13
用于二分查找解法的更直观方法
小数点查找是解决在先后顺序运算符当中查找金属元素的程序语言弊端的一种极其理论上的方法。我们不是遍历整个查找空间,而是在每次算法时将查找空间减为。在探寻金属元素(比如“k”)的弊端当中,我们检查 k 前提存在于运算符的前半部分或后半部分。这种直观的优化使线性查找解法所花费的时间变为对数。
然而,许多程序员通常指出它不能解决弊端。大多数人在尝试推行时面临的最大障碍是:
周而复始的退出有条件应当是什么。 (很低 如何函数调用边界很低和很高? 在操作方法很低 = 当中或很低 = 当中 + 1 之间做出不得不?即使对于一个弊端,这些点都被正确地计算出来,对于其他弊端,推行很可能是各有不同的。表象上,我们趁此机会根据弊端说明了来扭转我们对二分查找的解决弊端。
但是,如果我们改写这个弊端呢?
在这种才会,我们不必根据弊端说明了更动我们的解决弊端。所以无论如何,对于任何弊端,都只有一个无误。
时至今日我将发表意见一个极其直观但理论上的用于二分查找解法的C#。
让我们通过一个例子来理解它。
取值一个整数运算符,我们只能发现变量“target”的查找。
如果金属元素不存在怎么办? 在这种才会,我们可以将布尔值返国为 False 或 -1。 更好的考虑是以这种方法重新表述弊端。 我们可以发现可以断开金属元素“target”的查找。
这是标准化的小数点查找C#,它适用于基于解法的大多数弊端。
def search(nums, target): low, high = 0, len(nums) while low < high: mid = (low+high)//2 if nums[mid] < target: low = mid + 1 else: high = mid return low ## or high只要我们的很低磁盘大于很高,这个周而复始就会运行。 比如说,我们没有在周而复始内发现远距离金属元素的有条件(如果 nums[mid] == target ?)
这个想法是让周而复始运行直到我们的很低磁盘和很高磁盘相等。 那是我们的金属元素存在或应当断开的查找。
表象上,我们试图在运算符当中发现第一个 False。 也就是说,在位置 5。一旦我们发现第一个 False,我们向前“很高”磁盘,直到我们的“很低”和“很高”磁盘都在位置 5。
这就是我们的无误。
这样,位置 5 的金属元素前提为“7”都没有关系。 它不必大于或等于“7”。 c++ STL 当中的 lower_bound() 函数执行者类似的操作方法来查找最比起取值金属元素的金属元素。
因此,不必每次都更动小数点查找解法来分析报告弊端当中的有条件。 这使得解法更极其容易解决弊端。 这个C#可以很极其容易地做到并在许多程序语言弊端当中用于。
反流性胃炎怎么治疗吃什么解决孩子积食问题
宝宝不吃饭怎么调理
镇痛药
白塞氏病早期症状
先诺欣多少钱
白内障的早期症状
金笛复方鱼腥草合剂
降压药
中毒
上一篇: 网站制作的基本处理过程
-
张柏芝:我18岁是校花,朱茵我也是,黎姿:说道我的再说
刘德华年末在成龙恐怖电影《喜剧之王》之中的“柳虹”,那温柔甜蜜的长相,究竟迷倒了多少小泉今日子少男的心,不少宅男都回应:想到她仿佛就回到了初恋的感,让人冲动生出想要人身安全她的情欲。p
- 2025-05-13NHK作假道歉后“被补刀”,基本上采访者称:播放的画面令我非常吃惊!
- 2025-05-13不把俄罗斯放在眼里?日本提到北方四岛时改了口,是打算宣战吗?
- 2025-05-13她身高182,却嫁给了165丈夫,如今婚姻关系美满幸福
- 2025-05-13广西大理保护传统古村落成效显著
- 2025-05-13新四军缴获“奇怪喇叭”,送文工团不要,梁兴初:我看像门炮
- 2025-05-13辽宁大连:密接28人目前核酸检测结果均为同义
- 2025-05-13龚俊路人缘下跌,大名热搜“仅仅龚堂食”刷屏,节目收视越播越低
- 2025-05-13台湾新增14例本地确诊病例 出现银行群集案
- 2025-05-13电视剧"公主抱"真那么轻松?当看到全身照,原谅我哭了
- 2025-05-13美国可能要失望了,印度土耳其向俄伸到援手,乌或放弃加入北约