實驗3 檢索演算法(順序查詢 二分查詢)

2021-10-22 20:36:27 字數 643 閱讀 3044

1:問題

寫出兩種檢索演算法:在乙個排好序的陣列t[1…n]中查詢x,如果x在t中,輸出x在t的下標j;如果x不在t中,輸出j=0

2:解析

1:順序查詢:遍歷一遍t[1…n],找到與x相等的就跳出並輸出,否則若查詢了一圈都沒有證明x不在陣列中,輸出j=0;

2:二分查詢:將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。

3:設計

4:分析

順序查詢:o(n);

二分查詢:o(log(n))

5:原始碼

順序查詢

二分查詢

檢索演算法 順序查詢和二分查詢

分析原始碼 使用兩種檢索演算法求解有序陣列中某元素的所在位置。有序陣列最基本檢索演算法是順序查詢,又稱線性查詢,其思想是從資料結構線性表的一段開始順序掃瞄,依次將掃瞄到的元素和給定值x相比較,若找到相等值則表示查詢成功,若掃瞄結束仍未找到與給定值相等的元素,則表示線性表中不存在給定值。有序陣列的另一...

檢索演算法之二分查詢

二分查詢演算法類似我們日常生活中常見的猜數字的遊戲。假設給定從1 100這個排好序的陣列,而猜數字的人只知道這個範圍,你拿著一塊寫有數字的題板背對著他,讓他猜你手裡拿的的數字。估計有經驗的人會先猜50,然後你說偏大了,偏小了,還是相等。如果偏大了或者是偏小了,他會用同樣的方式在偏大或者偏小的陣列中從...

查詢演算法 順序查詢 二分查詢 分塊查詢

近期總結了各大排序演算法的原理 並對其進行了實現,想著一併把查詢演算法總結了,今天就著手開始總結查詢演算法。關鍵字與陣列中的數順序比較,時間複雜度o n void cgradationdlg onbutfind else if n 10 updatedata false 二分查詢又稱折半查詢,優點是...