二分法查詢演算法

2021-10-10 22:05:15 字數 865 閱讀 4529

二分法也叫折半法

演算法:當資料量很大適宜採用該方法。採用二分法查詢時,資料需是排好序的。

基本思想:

假設資料是按公升序排序的,對於給定值key,從序列的中間位置k開始比較,

如果當前位置arr[k]值等於key,則查詢成功;

若key小於當前位置值arr[k],則在數列的前半段中查詢,arr[low,mid-1];

若key大於當前位置值arr[k],則在數列的後半段中繼續查詢arr[mid+1,high],

直到找到為止。

時間複雜度:o(log(n))

遞迴演算法:(c++實現)

#include

using

namespace std;

int count=0;

//count統計查詢次數

intbinarysearch

(int

*arr,

int low,

int high,

int key)

count++;if

(key==arr[mid]

)else

if(key

)else

}int

main()

測試結果:

查詢1 2 3 4 中 3的位置並且輸出查詢的次數

[查詢5 找不到輸出-1和查詢的次數

查詢演算法 二分法

二分查詢演算法的基本思想 一.首先確定該區間的中間元素位置 mid low high 2 mid代表區間內中間元素的位置 low代表區間內最左邊元素的位置 high代表區間內最右邊元素的位置 二.將待查key元素值與中間元素mid的值 array mid 比較,如果相等,則查詢成功,否則確定新的查詢...

演算法 二分法查詢

1 2 二分法實驗 31 設a 0 n 1 是乙個已排好序的陣列.4請改寫二分搜尋演算法,使得當搜尋元素x不在陣列中時,5返回小於x的最大元素的位置i和大於x的最大元素位置j.6當搜尋元素在陣列中時,i和j相同,均為x在陣列中的位置.72 設有n個不同的整數排好序後存放於t 0 n 1 中,8若存在...

演算法 二分法查詢

免費 二分法查詢主要是為了快速查詢給定陣列內,期待值在陣列中的位置 下標 二分法查詢通過對整個陣列取中間值,判斷期待值所在的範圍並縮小範圍,每次查詢範圍折半,直到範圍的邊界重合,得出期待值的位置,如果找不到返回null 二分法有乙個先決條件是 陣列內元素必須是有序的 給定乙個包含1,3,5,7,8,...