当前位置:首页 >> 中药养生 >> 七爪源码:等于搜索模板

七爪源码:等于搜索模板

发布时间: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#可以很极其容易地做到并在许多程序语言弊端当中用于。

反流性胃炎怎么治疗
吃什么解决孩子积食问题
宝宝不吃饭怎么调理
镇痛药
白塞氏病早期症状
先诺欣多少钱
白内障的早期症状
金笛复方鱼腥草合剂
降压药
中毒
标签:模板
友情链接: