![線性表的查詢技術:
1、順序查詢
基本思想:從線性表的一端向另一端逐個將關鍵碼與 給定值進行比較,若相等,則查詢成功,給出該記錄 在表中的位置;若整個表檢測完仍未找到與給定值相 等的關鍵碼,則查詢失敗,給出失敗資訊。
順序查詢 (線性查詢)
int seqsearch1(int r[ ], int n, int k) //陣列r[1] ~ r[n]存放查詢集合
改進的順序查詢:
基本思想:設定「哨兵」。哨兵就是待查值,將它放 在查詢方向的盡頭處,免去了在查詢過程中每一次比 較後都要判斷查詢位置是否越界,從而提高查詢速度
int seqsearch2(int r[ ], int n, int k) //陣列r[1]~r[n]存放查詢集合
asl= = ∑ = n i i c p 1∑ + − = n i i i np 1 )1(i = (n+1)/2=o(n)
順序查詢的缺點:
平均查詢長度較大,特別是當待查詢集合中元素較多 時,查詢效率較低。
順序查詢的優點:
演算法簡單而且使用面廣。 對錶中記錄的儲存沒有任何要求,順序儲存和鏈結 儲存均可; 對錶中記錄的有序性也沒有要求,無論記錄是否按 關鍵碼有序均可。
2、折半查詢
使用條件: 線性表中的記錄必須按關鍵碼有序; 必須採用順序儲存。
基本思想:在有序表中,取中間記錄作為比較物件, 若給定值與中間記錄的關鍵碼相等,則查詢成功;若 給定值小於中間記錄的關鍵碼,則在中間記錄的左半 區繼續查詢;若給定值大於中間記錄的關鍵碼,則在 中間記錄的右半區繼續查詢。不斷重複上述過程,直 到查詢成功,或所查詢的區域無記錄,查詢失敗。
資料結構第七章
平衡二叉樹 基本思想 在構造二叉排序樹的過程中,每插入乙個 結點時,首先檢查是否因插入而破壞了樹的平衡性,若是,則找出最小不平衡子樹,在保持二叉排序樹特 性的前提下,調整最小不平衡子樹中各結點之間的鏈 接關係,進行相應的旋轉,使之成為新的平衡子樹 平衡二叉樹 或者是一棵空的二叉排序樹,或者是具 有下...
資料結構第七章查詢
判斷題 1 1在雜湊中,函式 插入 和 查詢 具有同樣的時間複雜度。t 1 2當記錄個數小於雜湊表長度時,雜湊查詢平均查詢長度必然為0。f 1 3用向量和單鏈表表示的有序表均可使用折半查詢方法來提高查詢速度。f 1 4有n個數存放在一維陣列a 1 n 中,在進行順序查詢時,這n個數的排列有序或無序其...
資料結構 第七章 查詢
查詢的目的是從給定的同一型別的資料集合中,找出人們所需要的資料元素 或記錄 基本術語 記錄 record 關鍵字 keyword 主關鍵字 primarykey 次關鍵字 secondary key 查詢表 searching table 動態查詢 dynamic searching 靜態查詢 st...