課程:《程序設計與數據結構》
班級: 1723
姓名: 王禹涵
學號: 20172323
實驗教師:王志強老師
測試日期:2018年10月
必修/選修: 必修算法
ASL測試
已知線性表具備元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,ASL是多少?數據結構
ASL: 所謂ASL是指在查找過程當中,爲肯定記錄在查找表中的位置,需和給定值進行比較的記錄關鍵字個數的平均值。測試
解題:在本題中,線性表具備元素{5,13,19,21,37,56,64,75,80,88,92},能夠畫出計算機執行折半查找的順序設計
位置 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
元素 | ... | 05 | 13 | 19 | 21 | 37 | 56 | 64 | 75 | 80 | 88 | 92 |
順序 | ... | 3 | 4 | 2 | 3 | 4 | 1 | 3 | 4 | 2 | 3 | 4 |
二叉樹如圖所示
blog
因此順序爲1的結點一個,2有兩個,3有四個,4有四個。
ASL=(1+2x2+3x4+4x4) / 11 = 33/11= 3排序
PS:查閱折半查找ASL的算法時,文章給出了另外一種ASL的算法
這種算法適用於n較大時的狀況table