平均尋找長度詳解

來源:互聯網
上載者:User

1.順序尋找:

從表的一端開始,順序掃描線性表,依次將掃描到的節點關鍵字和給定值k相比較。

等機率條件下...平均尋找長度:ASL = (n+....+2+1)/n= (n+1)/2;

2.二分法尋找:

前提是線性表是有序表。假設資料是按升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則尋找成功;若x小於當前位置值,則在數列的前半段中尋找;若x大於當前位置值則在數列的後半段中繼續尋找,直到找到為止。

在等機率條件下...平均尋找長度:ASL = log2(n+1)-1= log2(n+1) 

原因:用二叉樹來描述,樹的高度d與節點樹的關係為:d^2-1=n;所以d = log2(n+1),每一層只需要比較一次,所以最多需要比較log2(n+1)次。

3.分塊尋找:

又稱索引順序尋找,由分塊有序(每一塊中的關鍵字不一定有序,但是前一塊中的最大關鍵字必須小於後一塊中的最小關鍵字,即分塊有序。)的線性表和索引表組成。例如把r【1....n】分為 b 塊,則前 b-1 塊節點數為 s = 【n/b】,最後一塊允許小於或等於s。索引表是一個遞增有序表。

平均尋找長度分為兩部分,索引表的尋找+塊內的尋找。(索引表能夠用二分法和順序尋找,塊內無序,所以只能用順序尋找)

如果以二分尋找來確定塊,則 ASL = log2(b+1)-1+(s+1)/2= log2(n/s+1)+s/2;

如果以順序尋找來確定塊,則 ASL = (b+1)/2+(s+1)/2= (s^2+2s+n)/(2s)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.