国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

js 二分查抄

二分查找,也稱折半查找,是一種在有序數(shù)組中查找目標(biāo)值的算法。


文章來(lái)源地址http://www.zghlxwxcb.cn/article/241.html

它的基本思想是將數(shù)組分成兩個(gè)部分,判斷目標(biāo)值在哪一部分中,然后遞歸地在該部分中進(jìn)行查找,直到找到目標(biāo)值或者確定目標(biāo)值不存在為止。下面是使用 JavaScript 實(shí)現(xiàn)二分查找的代碼:


function binarySearch(arr, target) {
  let low = 0;
  let high = arr.length - 1;

  while (low <= high) {
    let mid = Math.floor((low + high) / 2);

    if (arr[mid] === target) {
      return mid;
    } else if (arr[mid] < target) {
      low = mid + 1;
    } else {
      high = mid - 1;
    }
  }

  return -1;
}


這個(gè)函數(shù)接受一個(gè)有序數(shù)組和一個(gè)目標(biāo)值作為參數(shù),返回目標(biāo)值在數(shù)組中的下標(biāo)。如果目標(biāo)值不存在于數(shù)組中,則返回 -1。

下面是這個(gè)函數(shù)的使用示例:


const arr = [1, 3, 5, 7, 9];
console.log(binarySearch(arr, 3)); // 輸出 1
console.log(binarySearch(arr, 6)); // 輸出 -1


這個(gè)示例中,我們定義了一個(gè)有序數(shù)組 [1, 3, 5, 7, 9],然后使用 binarySearch 函數(shù)查找其中的值 3 和 6。由于 3 存在于數(shù)組中,因此函數(shù)返回 1;而 6 不存在于數(shù)組中,因此函數(shù)返回 -1。


在實(shí)際應(yīng)用中,二分查找可以用于快速查找有序數(shù)組中的元素,時(shí)間復(fù)雜度為 $O(\log n)$,比線性查找的時(shí)間復(fù)雜度 $O(n)$ 更加高效。



到此這篇關(guān)于js 二分查抄的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

原文地址:http://www.zghlxwxcb.cn/article/241.html

如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系站長(zhǎng)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 276.【華為OD機(jī)試】矩陣匹配(二分法—Java&Python&C++&JS實(shí)現(xiàn))

    ??點(diǎn)擊這里可直接跳轉(zhuǎn)到本專欄,可查閱頂置最新的華為OD機(jī)試寶典~ 本專欄所有題目均包含優(yōu)質(zhì)解題思路,高質(zhì)量解題代碼(JavaPythonC++JS分別實(shí)現(xiàn)),詳細(xì)代碼講解,助你深入學(xué)習(xí),深度掌握!

    2024年04月29日
    瀏覽(17)
  • 258.【華為OD機(jī)試真題】部門人力分配(二分搜索-Java&Python&C++&JS實(shí)現(xiàn))

    ??點(diǎn)擊這里可直接跳轉(zhuǎn)到本專欄,可查閱頂置最新的華為OD機(jī)試寶典~ 本專欄所有題目均包含優(yōu)質(zhì)解題思路,高質(zhì)量解題代碼(JavaPythonC++JS分別實(shí)現(xiàn)),詳細(xì)代碼講解,助你深入學(xué)習(xí),深度掌握!

    2024年02月19日
    瀏覽(26)
  • 263.【華為OD機(jī)試真題】孫悟空吃蟠桃(二分查找-Java&Python&C++&JS實(shí)現(xiàn))

    ??點(diǎn)擊這里可直接跳轉(zhuǎn)到本專欄,可查閱頂置最新的華為OD機(jī)試寶典~ 本專欄所有題目均包含優(yōu)質(zhì)解題思路,高質(zhì)量解題代碼(JavaPythonC++JS分別實(shí)現(xiàn)),詳細(xì)代碼講解,助你深入學(xué)習(xí),深度掌握!

    2024年02月20日
    瀏覽(21)
  • JS基礎(chǔ)-初識(shí)JavaScript

    JS基礎(chǔ)-初識(shí)JavaScript

    前面講了前端開(kāi)發(fā)必備的三種語(yǔ)言。其中的HTML、CSS我們基本上有了比較正確的認(rèn)識(shí)。這里講一下JavaScript。 語(yǔ)言 功能 結(jié)構(gòu)層 HTML 搭建結(jié)構(gòu)、放置部件、描述定義 樣式層 CSS 美化頁(yè)面、實(shí)現(xiàn)布局 行為層 JavaScript 實(shí)現(xiàn)交互效果、數(shù)據(jù)收發(fā)、表單驗(yàn)證 HTML構(gòu)成了基礎(chǔ)的骨架。 CSS

    2024年02月10日
    瀏覽(24)
  • JavaScript(JS基礎(chǔ))

    JavaScript(JS基礎(chǔ))

    提示:JS的重點(diǎn)是讓靜態(tài)的頁(yè)面產(chǎn)生一些變化 提示:JavaScript是弱類型語(yǔ)言,行尾分號(hào)可寫(xiě)可不寫(xiě) 首先看下Java 與 JavaScript什么關(guān)系 JS編寫(xiě)在 script (腳本)標(biāo)記中, script 標(biāo)記可以出現(xiàn)在html中的任意位置,也就是說(shuō)JS代碼可以嵌入在HTML中任意部分,從上到下依次執(zhí)行 script引入外

    2024年02月11日
    瀏覽(19)
  • JavaScript深拷貝(js深拷貝,JavaScript遞歸函數(shù),實(shí)現(xiàn)深拷貝)

    JavaScript深拷貝(js深拷貝,JavaScript遞歸函數(shù),實(shí)現(xiàn)深拷貝)

    簡(jiǎn)述:JavaScript的深拷貝和淺拷貝大家都比較熟悉,今天來(lái)分享下深拷貝,就是使用該函數(shù)時(shí),會(huì)復(fù)制拷貝一份該數(shù)據(jù),修改該數(shù)據(jù)屬性,不會(huì)改變?cè)袛?shù)據(jù),就是把復(fù)制的對(duì)象所引用的對(duì)象全都復(fù)制了一遍,具體實(shí)現(xiàn)如下; 1、定義拷貝對(duì)象; 2、定義遞歸函數(shù)deepClone(),實(shí)現(xiàn)

    2024年02月15日
    瀏覽(21)
  • 【Anime.js】——JavaScript動(dòng)畫(huà)庫(kù):Anime.js——學(xué)習(xí)筆記

    【Anime.js】——JavaScript動(dòng)畫(huà)庫(kù):Anime.js——學(xué)習(xí)筆記

    目錄 一、搭建開(kāi)發(fā)環(huán)境 ?二、基本功能和使用 開(kāi)始制作動(dòng)畫(huà) 動(dòng)畫(huà)屬性 三、anime.stagger——交錯(cuò)動(dòng)畫(huà) 四、timeline——時(shí)間軸 ?五、控制、回調(diào)與助手 一、控制 ?二、回調(diào) 三、助手 六、easings——?jiǎng)赢?huà)運(yùn)動(dòng)曲線 七、SVG動(dòng)畫(huà) 官網(wǎng)定義: anime.js 是一個(gè)簡(jiǎn)便的JS動(dòng)畫(huà)庫(kù),用法簡(jiǎn)單而

    2024年02月01日
    瀏覽(24)
  • JavaScript:js數(shù)組/對(duì)象遍歷方法

    一、js遍歷方法 序號(hào) 方法 描述 1 for 使用最基本的for循環(huán)可以遍歷數(shù)組 2 for of for...of語(yǔ)句用來(lái)遍歷可迭代對(duì)象(包括數(shù)組、Set、Map、字符串等),它可以替代傳統(tǒng)的for循環(huán)和forEach()方法。for...of循環(huán)每次迭代都將返回一個(gè)值,而不是索引。 3 for in for...in語(yǔ)句用來(lái)遍歷對(duì)象的可

    2024年02月09日
    瀏覽(28)
  • 【JavaScript】JS語(yǔ)法入門到實(shí)戰(zhàn)

    【JavaScript】JS語(yǔ)法入門到實(shí)戰(zhàn)

    JavaScript (簡(jiǎn)稱 JS) 是世界上最流行的編程語(yǔ)言之一 是一個(gè)腳本語(yǔ)言, 通過(guò)解釋器運(yùn)行 主要在客戶端(瀏覽器)上運(yùn)行, 現(xiàn)在也可以基于 node.js 在服務(wù)器端運(yùn)行 JavaScript 最初只是為了完成簡(jiǎn)單的表單驗(yàn)證(驗(yàn)證數(shù)據(jù)合法性),結(jié)果后來(lái)不小心就火了。當(dāng)前 JavaScript 已經(jīng)成為了一個(gè)通用

    2024年02月09日
    瀏覽(30)
  • 【JavaScript】JS——Map數(shù)據(jù)類型

    【JavaScript】JS——Map數(shù)據(jù)類型

    存儲(chǔ)鍵值對(duì)的對(duì)象。 能夠記住鍵的原始插入順序 任何值(對(duì)象或原始值)都可以作為鍵或值。 Map中的一個(gè)鍵 只能出現(xiàn)一次 ,新的值會(huì)覆蓋舊的值。 迭代方式:for…of循環(huán),返回一個(gè) [key,value] 的數(shù)組。 鍵的相等:基于零值相等比較 Map與Object的比較 Map默認(rèn)不包含任何鍵。

    2024年02月04日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包