binary-search相关内容

数组中的二分搜索

如何仅使用数组实现二分查找? 解决方案 确保您的数组已排序,因为这是二分查找的关键. 任何索引/随机访问数据结构都可以进行二分搜索.因此,当您说“仅使用数组"时,我会说数组是使用二分搜索的最基本/常见的数据结构. 您可以递归地(最简单)或迭代地进行.二分搜索的时间复杂度为 O(log N),这比在 O(N) 处检查每个元素的线性搜索要快得多.以下是维基百科:二进制搜索算法的一些 ..
发布时间:2021-11-18 01:49:09 其他开发

如何在两个已排序数组的并集中找到第 k 个最小元素?

这是一道作业题,二分查找已经介绍过了: 给定两个数组,分别是N和M个元素,按升序排列,不一定唯一: 在两个数组的联合中找到 k 个最小元素的时间效率算法是什么? 他们说它需要 O(logN + logM) 其中 N 和 M 是数组长度. 让我们将数组命名为 a 和 b.显然我们可以忽略所有 a[i] 和 b[i] 其中 i >k. 首先让我们比较 a[k/2] 和 b[k/2 ..
发布时间:2021-11-18 01:24:06 其他开发

indexOf 还是二分搜索?

我有一个字符串数组列表,字符串按顺序排列,我想找到特定元素的索引,哪个会更快? 执行列表的 indexOf() 在等效数组中执行二分查找? 解决方案 您可以直接使用 Collections.binarySearch 以提高效率: public static int binarySearch(List> list,T键 ..
发布时间:2021-11-18 00:14:56 Java开发

Collections.binarySearch 的困难

我是 JAVA 和 Netbeans 的新手,这就是我必须做的: 用户可以在输入框中写入 CD 标题,然后通过按删除按钮将 CD 从列表中删除.如果该集合中不存在该 CD,则可以在发件箱中显示一条消息来说明这一点.我必须使用 Collections.binarySearch() 来做到这一点.这只是整个程序的一部分,但我已经弄清楚了其余部分.这就是我所做的: ArrayList 歌曲 = 新的 ..
发布时间:2021-11-17 23:59:22 Java开发

为什么即使我返回值,javascript递归函数也返回“未定义"

我正在研究如何在javascript函数中实现二进制搜索,发现当我返回该值并将其保存到变量中时,然后在我进行console.log时,这是未定义的. const recursiveBinarySearch =(数字,目标)=>{const midpoint = Math.floor(numbers.length/2);如果(数字[中点] ===目标){//它确实找到了值并返回返回'FOUND' ..
发布时间:2021-04-15 19:36:53 前端开发

基本的Java:猜数字二进制搜索

好吧,因此用户认为(例如,不键入)介于1到10之间的数字,程序会提示用户“您的数字是否小于或等于X?",然后用户键入对或错.到目前为止,我已经设法进行了搜索间隔,但是我不知道如何继续.主要问题是,如果允许我使用“正确!",则只能使用true或false.那就没问题了. import java.util.*;公共类GuessTheNumber {公共静态void主(String [] args) ..
发布时间:2021-04-15 19:36:50 Java开发

二进制搜索分数

我正在尝试解决Sedgewick的《算法》一书中的一个练习,内容如下: 设计一个使用对数形式的查询的方法,该数量是否小于x?找出有理数p/q,使得0 <0.p <q <N.提示:分母小于N的两个分数之差不能超过1/N ^ 2. 我知道我必须进行二分搜索的间隔是[0,1],但是我不确定我应该看什么,什么是N.有人可以给我解释一下吗? 解决方案 忽略提示,这是一个更棘手的问题的解决 ..
发布时间:2021-04-15 19:36:47 其他开发

红宝石中的递归二进制搜索

我一直在学习一些算法,但找不到我的方法失败的原因.如果您可以看一下代码并阐明为什么会发生这种情况.我真的很感激. 我正在尝试编写一种可以递归二进制搜索数组的方法,到目前为止,这就是我的全部代码. def recursive_binary_search(arr,target)max_index =长度-1mid_index = max_index/2如果arr [mid_index]>目标 ..
发布时间:2021-04-15 19:36:43 其他开发

O(n ^ 2)复杂度的插入排序,并对先前的值使用二进制搜索以提高复杂度

如果您将算法更改为使用二进制搜索而不是搜索先前的值,直到找到插入位置,则算法的(插入代码为 O(n ^ 2))的复杂度将如何变化当前值.另外,什么时候有用? 解决方案 您的新复杂度仍然是二次方的,因为您需要将所有排序的部分向右移动.因此,使用二进制搜索只会稍微好一点. 对于大型数组,我建议使用快速排序算法(在 O(n log n)时间内),二次插入排序算法仅适用于小型数组. ..
发布时间:2021-04-15 19:36:40 其他开发

快速排序数组并在Java中执行二进制搜索

因此,我必须设计一种无需使用Java API即可将quicksort用作排序算法的方法.然后,我必须编写另一种方法来返回排序后的数组,并且如果在其中找到了被搜索的元素,则使用二进制搜索返回true.我不知道我在哪里犯了这个愚蠢的错误. 公共类Aufgabe1 {公共静态无效sort(int []数组){/* TODO:在此处添加代码*/sort(array,0,array.length-1);} ..
发布时间:2021-04-15 19:36:37 Java开发

通过BinarySearch通过差异查找最接近的索引

我有大约500,000个整数的排序数组.目前,我正在通过选择目标int与所有元素之间的差异来选择正确的索引,然后使用LINQ(效率非常低)按最小差异进行排序. 我希望能够使用BinarySearch进行类似的操作. 给出: Pos值0 101 202 304 505 60 如果我想找到最接近值24的值,我希望返回的索引为1. 给出: int索引= myArray.Bi ..
发布时间:2021-04-15 19:36:31 C#/.NET

二进制搜索终止条件

每当我迭代执行二进制搜索时,我总是对应该使用 while(low 虽然两者都可以,但是有人可以告诉我一个人相对于另一个人的实际优势是什么吗? 解决方案 除了@templatetypedef所说的外,还必须提及的是,当边界为 inclusive 时,终止条件应仅为 low ..
发布时间:2021-04-15 19:36:28 其他开发

二进制搜索圆弧旋转数组

我正在尝试执行二进制搜索以在循环排序的数组中查找元素.我收到一个我似乎不理解的类型错误.任何建议/修改将不胜感激. 这是我的代码: def Binarysearch(a,low,high,x):如果低>高的:返回-1别的:中=(低+高)/2如果x == a [mid]:返回中elif a [mid]a [mid]和x 我收到错误消息: Line ..
发布时间:2021-04-09 20:06:25 其他开发

从datagridview删除多行后索引超出范围?C#

我使用 ArrayList 进行二进制搜索.datagridview的行将添加到ArryList.当我从datagridview删除一行时,它几乎可以正常工作.问题是,当我从顶部或底部和中间的datagridview中删除许多行时,它给我一个错误.从 ArrayList (datagridview)删除一行后,如何刷新或更新 ArrayList ? 错误: '索引超出范围.必须为非负数 ..
发布时间:2021-04-09 19:37:25 C#/.NET

如何实现二进制搜索?

我正在尝试创建一个二进制搜索函数,我尝试使用下面的代码,但是我是python的初学者;我在 i == alist [i] 行上收到错误消息“列表索引必须是整数,而不是str".您能帮我解决问题吗?这是整个代码: def bsort(alist,i):左= 0右= len(alist)-1我==阿里斯[i][mid] =(左+右)//2如果alist [mid] ..
发布时间:2021-04-02 20:55:27 Python

数据结构中的二进制搜索和C中的算法分析

在第二章(2.4.4)中提到Binary_Search时,作者提到了" 请注意,不能将变量声明为无符号的(为什么?).在未签名的限定词有问题的地方,我们将不使用它.作为一个示例,如果无符号限定符不依赖于数组,从零开始,我们将其丢弃.我们不会使用它.作为一个例如,如果无符号限定符不依赖于数组从零开始,我们将其丢弃.我们还将避免使用for循环中作为计数器的变量的无符号类型,因为通常会增加循环计数 ..
发布时间:2021-04-02 20:48:52 其他开发

绝对元素求和

我正在尝试在Hackerrank上解决此问题. https://www.hackerrank.com/challenges/playing-with-numbers/问题 给定一个整数数组,您必须回答许多查询.每个查询均由一个整数x组成,并按以下方式执行: 将x添加到数组的每个元素,为以后的任何查询永久修改它. 找到数组中每个元素的绝对值,并将绝对值的总和打印在新行上. 有人可 ..
发布时间:2021-04-02 20:43:45 Python