日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

在三分鐘內學習二分查找

來源: 責編: 時間:2023-12-22 17:13:51 308觀看
導讀二分查找是一種在有序數組中查找元素的算法,通過不斷將搜索區域分成兩半來實現。你可能在日常生活中已經不知不覺地使用了大腦里的二分查找。最常見的例子是在字典中查找一個單詞。假設你想找到“馬拉松”的定義。你不

二分查找是一種在有序數組中查找元素的算法,通過不斷將搜索區域分成兩半來實現。你可能在日常生活中已經不知不覺地使用了大腦里的二分查找。58k28資訊網——每日最新資訊28at.com

最常見的例子是在字典中查找一個單詞。假設你想找到“馬拉松”的定義。你不會從字典的開頭開始查找。你會打開字典大約在中間位置。如果你在‘T’處,你已經過頭了。所以,你會調整并分割差距,縮小范圍直到找到“馬拉松”。58k28資訊網——每日最新資訊28at.com

58k28資訊網——每日最新資訊28at.com

這個逐步排除的過程就是二分查找的要點,但是針對數組的情況。58k28資訊網——每日最新資訊28at.com

線性查找 vs 二分查找

考慮一個從1到100的數字數組,你需要在這個范圍內找到一個特定的數字,就像玩一個猜數游戲。58k28資訊網——每日最新資訊28at.com

線性查找

簡單的方法是使用一個簡單的for循環——遍歷數組中的每個元素直到找到目標項。58k28資訊網——每日最新資訊28at.com

function findItem(arr, item) {  for (let i = 0; i < arr.length; i++) {      if (arr[i] === item) {        return i;      }  }  return -1; // 未找到項}

這個方法可以找到,但它的時間復雜度是O(n);想象一下,如果你要找的數在1到1萬億之間。58k28資訊網——每日最新資訊28at.com

你可以比線性查找做得更好。58k28資訊網——每日最新資訊28at.com

二分查找

使用二分查找,不是檢查每個元素,而是從中間開始。如果你要找的數字更大,你向右走;如果更小,你向左走。58k28資訊網——每日最新資訊28at.com

58k28資訊網——每日最新資訊28at.com

然后呢?你重復這個過程。中間,左邊或右邊,縮小可能性直到找到數字。58k28資訊網——每日最新資訊28at.com

function binarySearch(arr, target) {  let left = 0;  let right = arr.length - 1;  while(left <= right) {    let mid = Math.floor((left + right) / 2);    if(arr[mid] === target) return mid;    if(arr[mid] < target) left = mid + 1;    else right = mid - 1;  }  return -1;}

它不僅能迅速切入數據;時間復雜度為O(logN),比線性搜索快得多。58k28資訊網——每日最新資訊28at.com

在空間方面,它是O(1)。不需要額外的存儲空間。58k28資訊網——每日最新資訊28at.com

小結:何時使用二分查找?

二分查找最常用于數組,但也可以應用于數據庫中的有序序列、排序鏈表中的搜索算法,甚至決策過程中可以預測和系統地劃分范圍的情況。58k28資訊網——每日最新資訊28at.com

58k28資訊網——每日最新資訊28at.com

重要的是,二分查找只能在排序的項目集合上執行。整個二分查找的方法基于這樣一個原則,即集合是按順序排列的,這樣算法才能通過比較中間項來預測搜索項的位置。如果集合沒有排序,這種預測就不起作用,算法也不能正確運行。58k28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-52185-0.html在三分鐘內學習二分查找

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Linux下被我誤解的gcc,軟件可執行文件的跨系統版本兼容性沒有那么差,如果你也是這樣處理

下一篇: 淺析Apollo配置中心

標簽:
  • 熱門焦點
  • 8月總票房已突破10億!《封神》第一:口碑已經成了

    8月5日消息,據燈塔專業版數據,截至8月5日9時35分,8月總票房(含預售)已突破10億。其中,《封神》以大比分的優勢領先。根據官方消息,目前該片總票房已經超過14.
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 2023 年的 Node.js 生態系統

    隨著技術的不斷演進和創新,Node.js 在 2023 年達到了一個新的高度。Node.js 擁有一個龐大的生態系統,可以幫助開發人員更快地實現復雜的應用。本文就來看看 Node.js 最新的生
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保
  • 三分鐘白話RocketMQ系列—— 如何發送消息

    我們知道RocketMQ主要分為消息 生產、存儲(消息堆積)、消費 三大塊領域。那接下來,我們白話一下,RocketMQ是如何發送消息的,揭秘消息生產全過程。注意,如果白話中不小心提到相關代
  • 重估百度丨“晚熟”的百度云,能等到春天嗎?

    &copy;自象限原創作者|程心排版|王喻可2016年7月13日,百度云計算戰略發布會在北京舉行,宣告著百度智能云的正式啟程。彼時的會場座無虛席,甚至排隊排到了門外,在場的所有人幾乎都
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 8月見!小米MIX Fold 3獲得3C認證:支持67W快充

    這段時間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都得到了不少爆料,而小米新一代折疊屏旗艦——小米MIX Fold 3此前也屢屢被傳
  • 三星Galaxy Z Fold5今日亮相:厚度縮減但仍略顯厚重

    據官方此前宣布,三星將于7月26日也就是今天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
Top 主站蜘蛛池模板: 南川市| 承德市| 东源县| 新密市| 大化| 吐鲁番市| 家居| 旅游| 临夏市| 榕江县| 西乌珠穆沁旗| 阿坝县| 桐柏县| 犍为县| 金平| 聊城市| 贵州省| 通渭县| 台北县| 涞水县| 高唐县| 原平市| 伊金霍洛旗| 常宁市| 衡阳市| 武邑县| 彭水| 罗平县| 昆山市| 图片| 通城县| 香河县| 宝鸡市| 涟水县| 广汉市| 丹江口市| 喜德县| 嫩江县| 德庆县| 南木林县| 友谊县|