二分查找算法還不會(huì)?看看我精心為你準(zhǔn)備的這個(gè)動(dòng)畫(huà)吧   2020-12-27 00:25:05

七哥陪你學(xué)算法 二分查找 二分查找是一種算法,它給定一個(gè)有序的元素列表,和一個(gè)元素,如果這個(gè)元素在列表中二分查找就返回其位置,否則返回null 一個(gè)小游戲帶你了解二分查找算法 我隨便想一個(gè)1~100的數(shù)字,你的目標(biāo)是以最少的次數(shù)猜到這個(gè)數(shù)字,你每次猜后我會(huì)說(shuō)大小、小了、對(duì)了 1 2 ... 100 50 小了 75 大了 63 大了 57 對(duì)了! 恭喜你,你已經(jīng)學(xué)習(xí)了二分查找算法 每次猜測(cè)排除的數(shù)字情況: 100個(gè)值 50 13 7 4 2 1 7步搞定 不管我心里想的是哪個(gè)數(shù)字,你在7次之內(nèi)都能猜到,因?yàn)槎即味寄芘懦O聰?shù)字的一半。 240000個(gè)值,使用二分查找需要多少步? 17步 對(duì)于包含n個(gè)元素的列表,用二分查找最多需要log2n步,而如果從頭遍歷去查找則最多需要n步 時(shí)間復(fù)雜度 傻找 二分查找 100個(gè)元素最多需要100次 100個(gè)元素最多需要7次 4000 000 000個(gè)元素最多需要4000 000 000次 4000 000 000個(gè)元素最多需要32次 O(n) O(log n) 1. 二分查找依賴(lài)順序表結(jié)構(gòu),即數(shù)組; 2. 數(shù)據(jù)量太小不適合二分查找; 3. 數(shù)據(jù)量太大也不適合二分查找; 如果數(shù)據(jù)無(wú)序可以使用二分查找? 注意事項(xiàng)