標籤:style http color 使用 ar strong 檔案 資料 問題
轉自:http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.1.1.htm
本章簡介
由於尋找運算的使用頻率很高,幾乎在任何一個電腦系統軟體和應用軟體中都會涉及到,所以當問題所涉及的資料量相當大時,尋找方法的效率就顯得格外重要。在一些即時查詢系統中尤其如此。因此,本章將系統地討論各種尋找方法,並通過對它們的效率分析來比較各種尋找方法的優劣。
尋找的基本概念
1、尋找表和尋找
一般,假定被尋找的對象是由一組結點組成的表(Table)或檔案,而每個結點則由若干個資料項目組成。並假設每個結點都有一個能惟一標識該結點的關鍵字。
尋找(Searching)的定義是:給定一個值K,在含有n個結點的表中找出關鍵字等於給定值K的結點。若找到,則尋找成功,返回該結點的資訊或該結點在表中的位置;否則尋找失敗,返回相關的指示資訊。
2、尋找表的資料結構表示
(1)動態尋找表和靜態尋找表
若在尋找的同時對錶做修改操作(如插入和刪除),則相應的表稱之為動態尋找表。否則稱之為靜態尋找表。
(2)內尋找和外尋找
和排序類似,尋找也有內尋找和外尋找之分。若整個尋找過程都在記憶體進行,則稱之為內尋找;反之,若尋找過程中需要訪問外存,則稱之為外尋找。
3、平均尋找長度ASL
尋找運算的主要操作是關鍵字的比較,所以通常把尋找過程中對關鍵字需要執行的 平均比較次數(也稱為平均尋找長度)作為衡量一個尋找演算法效率優劣的標準。
平均尋找長度 ASL(Average Search Length)定義為:
其中:
①n是結點的個數;
②Pi是尋找第i個結點的機率。若不特別聲明,認為每個結點的尋找機率相等,即
pl=p2…=pn=1/n
③ci是找到第i個結點所需進行的比較次數。
注意:
為了簡單起見,假定表中關鍵字的類型為整數:
typedef int KeyType; //KeyType應由使用者定義
轉:尋找的基本概念