分析原始碼
使用兩種檢索演算法求解有序陣列中某元素的所在位置。
有序陣列最基本檢索演算法是順序查詢,又稱線性查詢,其思想是從資料結構線性表的一段開始順序掃瞄,依次將掃瞄到的元素和給定值x相比較,若找到相等值則表示查詢成功,若掃瞄結束仍未找到與給定值相等的元素,則表示線性表中不存在給定值。
有序陣列的另一種檢索演算法是二分查詢,又稱折半查詢。用給定值x先與線性表中間元素進行比較,若相等則表示查詢成功;否則,根據給定值x和中間值的比較結果在左右子表中選取其一進行下一次查詢,直到找到相等值或查詢結束。
int
sequentialsearch()
return0;
}
int
binarysearch()
return0;
}
順序查詢時間複雜度:o(n)
二分查詢時間複雜度:o(logn)
github
實驗3 檢索演算法(順序查詢 二分查詢)
1 問題 寫出兩種檢索演算法 在乙個排好序的陣列t 1 n 中查詢x,如果x在t中,輸出x在t的下標j 如果x不在t中,輸出j 0 2 解析 1 順序查詢 遍歷一遍t 1 n 找到與x相等的就跳出並輸出,否則若查詢了一圈都沒有證明x不在陣列中,輸出j 0 2 二分查詢 將表中間位置記錄的關鍵字與查詢...
查詢演算法之順序查詢和二分查詢
1.順序查詢 基本思想 從資料結構線性表一端開始,順序掃瞄,依次將掃瞄到的關鍵字值與給定key相比較,若相等則表示查詢成功 若掃瞄結束仍沒有找到關鍵字等於key值的結點,表示查詢失敗。順序查詢適合於儲存結構為順序儲存或鏈結儲存的線性表。如下 include include using namespa...
順序查詢和二分查詢
二分查詢 陣列裡查詢某個元素 search函式 其中 array為陣列,k為要找的值,low為查詢範圍的最小鍵值,high為查詢範圍的最大鍵值 function search array,k,low 0,high 0 if low high 如果還存在剩餘的陣列元素 elseif k array m...