【算法分析与设计】浅析二分查找
生活随笔
收集整理的這篇文章主要介紹了
【算法分析与设计】浅析二分查找
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
二分查找與分治
需要說明,二分查找和分治法不一樣,不要弄混淆……
二分查找 每次都舍棄一半,從留下的一半中尋找目標(biāo) ;
而分治法把一個(gè)大問題分成兩個(gè)或多個(gè)小問題,遞歸地求這些小問題的解,最后再把它們合并起來,并且要仔細(xì)考慮合并時(shí)產(chǎn)生的新的情況。
其實(shí)二分查找嚴(yán)格來講可以說是“減治法”,要是寬泛的講也可說是“分治法”。(Update on 2020/2/9)
二分查找的效率
由于二分查找每次都丟棄一半的區(qū)間,所以能逐步的簡化問題求解,特別是在數(shù)據(jù)量龐大的時(shí)候會有很好的效率。
O(logN),對數(shù)級別啊,很棒啊……最壞情況是log2n次比較!!!
試想:比如給出一個(gè)220=1048576?數(shù)據(jù)量的數(shù)組,我們假設(shè)能分配出來。(Update on 2020/2/11)
二分查找大致最壞需要log2220=20次查找,而線性復(fù)雜度的順序查找就可能要查220=1048576?次,差別巨大。
平均查找長度
例題:對于長度為 9 9
總結(jié)
以上是生活随笔為你收集整理的【算法分析与设计】浅析二分查找的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】求解N皇后问题
- 下一篇: 【Java】基于Socket的C/S聊天