折半查找法如何在Excel函數(shù)中的運用
折半查找法如何在Excel函數(shù)中的運用
排序與查找不管是在Excel領(lǐng)域,還是其他領(lǐng)域,學(xué)會了這個技能,我們做起事情來更加方便快捷,省去不少時間,效率倍增。以下是學(xué)習(xí)啦小編為您帶來的關(guān)于折半查找法在Excel函數(shù)中的運用,希望對您有所幫助。
折半查找法在Excel函數(shù)中的運用
折半查找
又稱之為二分查找,它要求目標數(shù)組中的數(shù)據(jù)是有序排列的。優(yōu)點是比較次數(shù)少,查找速度快,平均性能好,適用于不經(jīng)常變動而查找頻繁的有序列表。下面先來看看下面的流程圖。
為了便于大家理解,我作幾點說明:
①將需要查找的值與中間值(也叫做中位值)進行對比;
②大于中位值時,以中位作為邊界,繼續(xù)在其右側(cè)取新的中位值繼續(xù)對比;
?、坌∮谥形恢禃r,以中位作為邊界,繼續(xù)在其左側(cè)取新的中位值繼續(xù)對比;
?、艿扔谥形恢禃r,依次判斷其右側(cè)數(shù)值是否繼續(xù)相等,直到不相等時返回最后一個相等的數(shù)值;
?、莓斨形晃恢门c邊界重疊時,中止對比,此時如果查找值大于中位值,則返回中位值;如果查找值小于中位值,則返回中位左側(cè)數(shù)值。如果左側(cè)數(shù)值不存在,返回#N/A。
流程圖大致的介紹就是如此,不知道我描述是不是清楚,這只是一個算法而已,不懂也不需要太過深入研究。當數(shù)據(jù)個數(shù)為偶數(shù)時,中位等于個數(shù)除以2;數(shù)據(jù)個數(shù)為奇數(shù)時,中位等于<個數(shù)+1>除以2
案例剖析
①如下圖所示,給出了一連串升序排列的數(shù)組,我們要找出33這個數(shù)。按照上面的介紹,我們知道中位值為24.
②第一次比較,因為33>24,所以鎖定第二次查找范圍在中位值的后面,而不是前面,前面的數(shù)字都比24小,不可能找得到33.
?、鄣诙伪容^,中位值變?yōu)榱?1,33>31,繼續(xù)找后面的。
④依次類推,直到找到數(shù)字或者整個數(shù)組被查找完畢,沒有找到則會返回#N/A
現(xiàn)在或許大家還在疑問為什么要是一個有序的序列才可以進行折半查找?下面這張圖,與之前的圖對比一下,你就知道了。
Excel中也有類似的函數(shù),LOOKUP,我們要查找74,但是用LOOKUP函數(shù)計算出來的結(jié)果卻是49,下面就來分析一下。
?、俚谝淮伪容^74小于116,所以開始往前查找。
?、谥形恢底?yōu)?0.74大于50,向后查找。
③74又大于47,依舊向后。
?、茏詈笾皇O乱粋€49了,這就是函數(shù)的返回值。
猜你喜歡:
2.excel表格ADDRESS函數(shù)怎樣設(shè)置對某單元格引用