1. 程式人生 > >20172310 藍墨雲ASL測試 2018-1938872

20172310 藍墨雲ASL測試 2018-1938872

位置 interval 二分查找 自己 二叉 對數 val int arc

20172310 藍墨雲ASL測試 2018-1938872

題目:

已知線性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少?

解答:(今天因為去啦啦操彩排,所以現在完成這篇博客)

首先,因為沒有上課,所以自己去理解折半查找法

在計算機科學中,折半搜索(英語:half-interval search),也稱二分搜索(英語:binary search)、對數搜索(英語:logarithmic search),是一種在有序數組中查找某一特定元素的搜索算法。 二分查找只適用順序存儲結構。為保持表的有序性,在順序結構裏插入和刪除都必須移動大量的結點。因此,二分查找特別適用於那種一經建立就很少改動、而又經常需要查找的線性表。

對那些查找少而又經常需要改動的線性表,可采用鏈表作存儲結構,進行順序查找。鏈表上無法實現二分查找。

原來折半查找就是二分查找。ASL是二分查找的平均查找長度。二分查找過程可用二叉樹來描述:把當前查找區間的中間位置上的結點作為根,左子表和右子表中的結點分別作為根的左子樹和右子樹。

對於有11個結點的表,若查找的結點是表中第6個結點,則只需進行一次比較;若查找的結點是表中第3或第9個結點,則需進行二次比較;找第1,4,7,10個結點需要比較三次;找到第2,5,8,11個結點需要比較四次。
技術分享圖片

20172310 藍墨雲ASL測試 2018-1938872