《軟件設計師教程》里關於折半查找的平均查找長度的計算過程有錯字和不夠完整的問題。在此詳細推導一次。 設折半查找判定樹結點總數為\(n=2^h-1\),則判定樹是深度為\(h=log_2(n+1)\)的滿二叉樹。在等概率情況下,折半查找平均查找長度為: \[ASL_{bs ...
首先,折半查找可以借助於一個二叉樹來描述。 為了簡化討論,則把這棵樹近似看成滿二叉樹,設二叉樹的高度為h h gt 則,根據二叉樹的性質,它有最大節點數, 則 是底數 。那么二叉樹的第j層節點數為: j ,當最后一層也就是j h 假定每個元素的查找概率相等,則,pi n pi為第i個節點的查找概率 那么平均查找長度為 n j j 則經過化簡計算,得平均查找長度為: n n log n 其中對數中的 ...
2021-02-24 14:13 0 1852 推薦指數:
《軟件設計師教程》里關於折半查找的平均查找長度的計算過程有錯字和不夠完整的問題。在此詳細推導一次。 設折半查找判定樹結點總數為\(n=2^h-1\),則判定樹是深度為\(h=log_2(n+1)\)的滿二叉樹。在等概率情況下,折半查找平均查找長度為: \[ASL_{bs ...
ASL:平均查找長度,即一次查找需要的次數,評價查找算法性能的指標。 查找成功的ASL:每個元素被查找的概率*查找該元素的比較次數的總和。 查找失敗的ASL:根據已有的元素將失敗情況划分為多個部分,計算各部分被查找的概率*確認其失敗所需要的比較次數的總和。 ...
Hash表的平均查找長度ASL計算方法 Hash表的“查找成功的ASL”和“查找不成功的ASL” ASL指的是 平均查找時間 關鍵字序列:(7、8、30、11、18、9、14) 散列函數: H(Key) = (key x 3) MOD 7 裝載 ...
一、線性探測再散列法 Hash表: 元素的值(value)和在數組中索引位置(index)有一個確定關系 Index = Hash(key) ==> y = f(x) ...
Hash表的“查找成功的ASL”和“查找不成功的ASL” ASL指的是 平均查找時間 關鍵字序列:(7、8、30、11、18、9、14) 散列函數: H(Key) = (key x 3) MOD 7 裝載因子: 0.7 處理沖突:線性探測再散列法 查找成功的ASL計算 ...
如果你看了很多其他博客然后都看不懂看到了這篇,你一定可以容易懂的!我佛了,這么簡單的東西死板地講題目不講原理鬼看得懂啊,這種風氣真的不行,我忍不住想罵一聲垃圾,啥玩意兒,誤人子弟!原理懂了啥題不會做? 要想知道 散列表查找失敗的平均查找長度,就要知道什么叫做查找失敗!舉個栗子:8個數字 key ...
折半查找 算法思想 算法實現 查找判定樹 折半查找效率 折半查找的算法思想 折半查找,又稱“二分查找”,僅適用於有序的順序表 33>mid,往右查 右指針到一個位置就-1,左指針到一個位置就+1 low>high,查找失敗 折半查找 ...
順序查找可以是線性表也可以是鏈表,同是既可以是有序的也可以是無序。 折半查找僅適用於有序的線性表 ...