广告
返回顶部
首页 > 资讯 > 前端开发 > html >JS数组搜索之折半搜索怎么实现
  • 457
分享到

JS数组搜索之折半搜索怎么实现

2024-04-02 19:04:59 457人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关js数组搜索之折半搜索怎么实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:一. 方法原理:当从一个给定的序列数组arr中, 查找某

这篇文章将为大家详细讲解有关js数组搜索之折半搜索怎么实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体如下:

一. 方法原理:

当从一个给定的序列数组arr中, 查找某个特定值value时, 折半搜索法是这样做的:

1. 确定搜索范围的起始点: 起点startIndex = 0, 终点endIndex = arr.length - 1;

2. 根据起始点来确定一个中间点middle = Math.floor((终点 - 起点) / 2);

3. 在startIndex < endIndex的前提下, 比较arr[middle]与value的大小:

(1) arr[middle] < value

调整搜索范围为数组的后半部分, 即startIndex = middle + 1, endIndex = arr.length -1;

(2) arr[middle] > value

调整搜索范围为数组的前半部分, 即startIndex = 0, endIndex = middle - 1;

接着, 重新计算middle, 再比较arr[middle]与value, 直到两者相等或者startIndex >= endIndex.

二. 代码:

// 该例的写法适用于序列为由小到大的数组
function binarySearch(arr, value) {
  var startIndex = 0,
  endIndex = arr.length - 1;
  middle = Math.floor((endIndex - startIndex) / 2);
  while (arr[middle] !== value && startIndex < endIndex) {
    if (arr[middle] > value) {
      endIndex = middle - 1;
    } else if (arr[middle] < value) {
      startIndex = middle + 1;
    }
    middle = Math.floor((endIndex - startIndex) / 2);
  }
  return (arr[middle] !== value) ? -1 : middle;
}

三. 优缺点:

(1) 优点:

每查找一次, 被查找的数组项数量会减少一半, 因此其在性能上要优于线性搜索法(在数组项较多时, 尤其明显);

(2) 缺点:

只适用于序列数组, 在对普通数组使用该方法之前, 需要对数组进行排序

关于“JS数组搜索之折半搜索怎么实现”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: JS数组搜索之折半搜索怎么实现

本文链接: https://www.lsjlt.com/news/71268.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS数组搜索之折半搜索怎么实现
    这篇文章将为大家详细讲解有关JS数组搜索之折半搜索怎么实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:一. 方法原理:当从一个给定的序列数组arr中, 查找某...
    99+
    2022-10-19
  • PHP中怎么实现搜索数组
    这篇文章给大家介绍PHP中怎么实现搜索数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。PHP语言中的数组应用是一个需要不断学习的知识点。首先我们要知道如何进行PHP搜索数组,得知道你所搜索的是一个数组,而不是其他的数...
    99+
    2023-06-17
  • java怎么实现搜索框搜索功能
    要实现搜索框搜索功能,可以按照以下步骤进行:1. 在前端页面上创建一个搜索框,如一个文本框和一个按钮。2. 在后端创建一个处理搜索请...
    99+
    2023-09-26
    java
  • JavaScript中怎么搜索数组
    这篇文章给大家介绍JavaScript中怎么搜索数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. Array.filter()我们可以使用Array.filter()方法在数组中...
    99+
    2022-10-19
  • js怎么实现百度搜索提示框
    小编给大家分享一下js怎么实现百度搜索提示框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果如下所示话不多说,请看代码:<...
    99+
    2022-10-19
  • golang怎么实现搜索
    随着互联网的飞速发展,搜索引擎成为了我们日常生活中必不可少的一部分。而搜索引擎的核心技术之一就是搜索算法。今天我们将介绍用golang语言实现搜索算法的方法和技巧。一、基本概念在开始介绍搜索算法之前,先让我们了解一些基本概念。1.搜索:在一...
    99+
    2023-05-14
  • php怎么进行数组搜索
    本篇内容介绍了“php怎么进行数组搜索”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php中可以进行数组搜索。php中提供了两种数组搜索函数...
    99+
    2023-07-02
  • vue3怎么实现搜索项超过n行就折叠
    这篇文章主要介绍了vue3怎么实现搜索项超过n行就折叠的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue3怎么实现搜索项超过n行就折叠文章都会有所收获,下面我们一起来看看吧。实现思路实现组件的布局。绑定监听事...
    99+
    2023-07-06
  • python高级搜索怎么实现高效搜索GitHub资源
    这篇文章主要讲解了“python高级搜索怎么实现高效搜索GitHub资源”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python高级搜索怎么实现高效搜索GitHub资源”吧!搜索资源通过 ...
    99+
    2023-06-25
  • C++图搜索算法之双端队列广搜怎么实现
    这篇文章主要介绍“C++图搜索算法之双端队列广搜怎么实现”,在日常操作中,相信很多人在C++图搜索算法之双端队列广搜怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++图搜索算法之双端队列广搜怎么实现...
    99+
    2023-07-02
  • C++怎么实现在旋转有序数组中搜索
    这篇文章主要介绍了C++怎么实现在旋转有序数组中搜索的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++怎么实现在旋转有序数组中搜索文章都会有所收获,下面我们一起来看看吧。Search in Rotated S...
    99+
    2023-06-19
  • android怎么实现搜索功能
    要实现Android应用的搜索功能,你可以按照以下步骤进行操作: 创建一个搜索框:在你的布局文件中添加一个EditText或Se...
    99+
    2023-10-26
    android
  • php怎么实现搜索效果
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php怎么实现搜索效果?PHP 搜索查询功能实现:今天遇到一个问题:在做“搜索”功能时,输入查询条件后查询不了。我做的是首页显示数据表package中的内容,但是有个条...
    99+
    2016-03-02
    php 搜索
  • html5怎么实现语音搜索
    小编给大家分享一下html5怎么实现语音搜索,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 谷歌的...
    99+
    2022-10-19
  • 全文搜索Sphinx怎么实现
    本篇内容介绍了“全文搜索Sphinx怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.Sphinx简介1.1.Sphinx是什么Sp...
    99+
    2023-06-04
  • 微信小程序怎么实现搜索输入框带搜索记录
    本篇内容主要讲解“微信小程序怎么实现搜索输入框带搜索记录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序怎么实现搜索输入框带搜索记录”吧!  在最近的项目里有一个需求,就是需要一个带搜索...
    99+
    2023-06-26
  • C++实现LeetCode(81.在旋转有序数组中搜索之二)
    [LeetCode] 81. Search in Rotated Sorted Array II 在旋转有序数组中搜索之二 Suppose an array sorted in as...
    99+
    2022-11-12
  • Android顶部搜索框怎么实现
    要实现Android顶部搜索框,可以使用Toolbar和SearchView组件。 首先,在你的布局文件中添加一个Toolbar组件...
    99+
    2023-10-26
    android
  • MySQL中怎么实现模糊搜索
    本篇文章给大家分享的是有关MySQL中怎么实现模糊搜索,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。01 引言MySQL根据不同的应用场景,支...
    99+
    2022-10-18
  • JavaScript中怎么实现全文搜索
    这篇文章将为大家详细讲解有关JavaScript中怎么实现全文搜索,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。相关性对每一个搜索查询,我们很容易给每个文档...
    99+
    2022-10-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作