演算法分析與實踐 作業3 檢索演算法

2021-10-04 02:55:08 字數 770 閱讀 9717

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

順序查詢:是最簡單最暴力的查詢方法,就是從頭到尾遍歷陣列的過程。

二分查詢:首先要求陣列是有序的。假設有乙個公升序排列的陣列,在該陣列中查詢元素 key。首先找出該陣列中最中間的元素,然後將最中間的元素mid 與所要查詢的元素 key 進行比較,如果相等則返回該元素的下標。如果 mid > key,則在 mid 左邊的區間去查詢key,如果 mid < key ,那麼在 mid 右邊的區間中去查詢 key。重複上述步驟,直到找到元素 key 為止,如沒有找到,則查詢失敗。

順序:

int

sequence_search

(int n,

int x)

}return0;

}

二分:

while

(l

順序查詢: o(n)

二分查詢:o(log n )

#include

int a[10]

=;intsequence_search

(int a,

int value,

int n)

intbinary_search

(int a,

int value,

int n)

return0;

}int

main()

演算法分析與設計實踐 作業三 檢索

一 問題描述 寫出兩種檢索演算法 在乙個排好序的陣列t 1 n 中查詢x,如果x在t中,輸出x在t的下標j 如果x不在t中,輸出j 0.二 解析 1.順序查詢 遍歷資料元素 2.二分查詢 演算法原理 在查詢表中不斷取中間元素與查詢值進行比較,以二分之一的倍率進行表範圍的縮小。三 設計 void mi...

演算法分析設計 作業3 檢索演算法

寫出兩種檢索演算法 在乙個排好序的陣列t 1 n 中查詢x,如果x在t中,輸出x在t的下標j 如果x不在t中,輸出j 0。一 順序查詢 順序查詢也稱為線性查詢,屬於無序查詢演算法,適用於儲存結構為順序結構或鏈式儲存的線性表。從資料結構線性表的一端開始,順序掃瞄,依次將掃瞄到的節點關鍵字與給定查詢的x...

演算法分析與設計作業三 檢索演算法

寫出兩種檢索演算法 在乙個排好序的陣列t 1 n 中查詢x,如果x在t中,輸出x在t的下標j 如果x不在t中,輸出j 0。1 順序查詢 從順序表的一端開始,依次將每個元素的關鍵字同給定值 k 進行比較,直到相等或比較完畢還未找到即結束。2 折半查詢 查詢過程是首先取整個有序表 a 0 a n 1 的...