寫出兩種檢索演算法:在乙個排好序的陣列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 的...