數據結構 查找
1.查找表:由同一類型的數據元素(或記錄)構成的集合。
2.關鍵字:數據元素(或記錄)中某個數據項的值,用以標識一個數據元素(或記錄)。
3.查找:在查找表中確定一個其關鍵字等於給定值的記錄或數據元素。
4.動態查找表:在查找的同時對錶做修改操作(插入和刪除),否則爲靜態查找表。
5.平均查找長度:ASL=求和Pi*Ci(Pi爲查找表中第i個記錄的概率,Ci爲和給定值進行過的關鍵字個數)
順序查找
又稱線性查找,主要用於在線性表中進行查找。
從表的一端開始,依次將記錄的關鍵字和給定值進行比較,若某個記錄的關鍵字和給定值相等,則查找成功;反之則查找失敗。
對無序線性表進行順序查找,查找失敗時要遍歷整個線性表;對有序線性表進行順序查找,查找失敗時不一定要遍歷整個線性表。
ASL成功=(n+1)/2
O(n)
折半查找
又稱線性查找,主要用於在線性表中進行查找。
從表的一端開始,依次將記錄的關鍵字和給定值進行比較,若某個記錄的關鍵字和給定值相等,則查找成功;反之則查找失敗。
對無序線性表進行順序查找,查找失敗時要遍歷整個線性表;對有序線性表進行順序查找,查找失敗時不一定要遍歷整個線性表。
ASL成功=(n+1)/2
O(n)
分塊查找
又稱索引順序查找。
分塊,子塊內元素可以無序,但塊間是有序的,即對於所有塊有第i塊的最大關鍵字小於第i+1塊的所有記錄的關鍵字。
ASL=Lb+Lw(Lb所在塊的平均查找長度;Lw塊中的平均查找長度)