LeetCode面试刷题技巧-二分查找算法代码思路解析
二分查找的思想
提及二分查找算法,我想大部分人都不陌生,就算不是學計算機的,基本上也都使用過二分查找的思想,不信的話,且聽我慢慢為你道來。
不知道你有沒有玩過這樣一個游戲,猜數字。就是說一個人心里想了一個數字,這個數字有范圍,然后另外一個人去猜,每次猜的時候,另一個人會告訴你是猜的大了,還是小了,亦或是猜中了,看怎么樣才能夠最快的猜中另一個人想的數字。
想必大部分人都玩過吧,比如說,數字范圍是 0 - 100,那我想你肯定是先猜 50,如果說猜大了,那就去猜 25,否則去猜 75, 以此類推,直到被猜的區間長度變為 1 或者你提前猜中了。
總結來說,就是每次二分的過程中,將待查找的區間長度變為原來的一半,直到找到要查找的值或者區間當中不存在待查找的值。
計算機中的二分查找算法
對應到計算機當中的二分查找算法又是啥樣的呢?那就是給定一個數組,然后查找值等于給定值的元素。說到這,你是不是覺得二分查找很簡單,沒必要單獨花一篇文章進行講解?
我不能說你理解的不對,確實,簡單的二分查找算法挺簡單的,但是你如果以為這就是全部的二分查找算法的話,那你就錯了。
二分查找算法有很多變體問題,這些問題在生活當中還非常常用,而且寫起來非常燒腦。
唐納德.克努特 (Donald E.Knuth)在《計算機程序設計藝術》的第 3 卷《排序和查找》中提到:
盡管第一個二分查找算法于 1946 年出現,然而第一個完全正確的二分查找算法實現直到 1962 年才出
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的LeetCode面试刷题技巧-二分查找算法代码思路解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你的画像是怎么来的?推荐系统是如何找到相
- 下一篇: 算法解密:电梯是如何实现上下调度的?