6 3 常用的查詢方法

2021-07-13 10:18:58 字數 1071 閱讀 3884

查詢

(search)當然也是最常見的運算,就是在資料集合中尋找滿足條件的資料物件,找到後進一步給出物件的具體資訊,在資料庫技術中稱為檢索(retrieval)。查詢的依據是

關鍵字(key word)是否相同。

可以唯一地把資料區分出來的資料被稱為主關鍵字

例如學生的資料,該資料是乙個結構體變數;

struct student; //英語,物理,數學,電子學成績等也可作為關鍵字

如果關鍵字小的排在前面,我們稱為

公升序排列

,反之為

降序排列

。圖6.3和圖6.4描述對半查詢是怎樣進行的。這裡是公升序的有序表。(

演示查詢過程

說明:首先安排兩個指標low和high指向首尾兩元素,取mid=(low+high)/2,如mid指向元素是所查詢的,則結束。如果該元素關鍵字大了,則取low=mid+1, high不變,繼續查詢;如果該元素關鍵字小了,則取 high=mid-1,low不變,繼續查詢。如果查到low>high仍未找到,則失敗,停止。這裡有一步非常重要,就是low=mid+1和high=mid-1,表面上看用low=mid和high=mid代替只是效率低了一些,多保留了乙個mid所指資料,但是實際上沒有加1和減1時,可能資料存在而找不到。如在圖6.3中,如果找到了僅剩20、21、23這一步,這時取low=mid,則剩下21、23,mid = (low + high)/2,得mid = low ,下一步low = mid ,還是剩下21、23,mid永遠不能指向23,永遠找不到23了。(

演示查詢過程

【例6.4】對半查詢遞迴演算法,作為有序表模板類成員函式。(

檢視原始碼

)遞迴方法易讀易懂,但效率低。注意遞迴的隱式迴圈**編寫。

【例6.5】對半查詢迭代演算法。(

檢視原始碼

常用的查詢方法之線性查詢

常用的查詢方法 順序 線性 查詢 二分查詢 折半查詢 插值查詢 斐波那契查詢 線性查詢 public class seqsearch int index seqsearch arr,11 if index integer.max value else methodname 簡單的線性查詢 descr...

每日一題 63查詢常用字元

給定僅有小寫字母組成的字串陣列 a,返回列表中的每個字串中都顯示的全部字元 包括重複字元 組成的列表。例如,如果乙個字元在每個字串 現 3 次,但不是 4 次,則需要在最終答案中包含該字元 3 次。你可以按任意順序返回答案。示例 1 輸入 bella label roller 輸出 e l l 示例...

常用的查詢DOM的方法

查詢body的方法 1 document.body document.getelementstagname body 0 查詢html的方法 var html document.documentelement 查詢所有元素 var all document.all 查詢會返回undefined,但實...