演算法 二分法查詢(binarySearch)

2021-09-25 12:03:39 字數 899 閱讀 3623

二分法查詢,也稱為折半法,是一種在有序陣列中查詢特定元素的搜尋演算法。

二分法查詢的思路如下:

(1)首先,從陣列的中間元素開始搜尋,如果該元素正好是目標元素,則搜尋過程結束,否則執行下一步。

(2)如果目標元素大於/小於中間元素,則在陣列大於/小於中間元素的那一半區域查詢,然後重複步驟(1)的操作。

(3)如果某一步陣列為空,則表示找不到目標元素。

二分法查詢的時間複雜度o(logn)。

非遞迴演算法:

function

binarysearch(arr,key)

else

if(key>arr[mid])

else

}return

-1;

//low>high的情況,這種情況下key的值大於arr中最大的元素值或者key的值小於arr中最小的元素值

}

結果測試:

遞迴演算法:

function

binarysearch(arr,low,high,key)

var mid=

math.floor((low+high)/

2);if(key==arr[mid])

else

if(key

high=mid

-1;return binarysearch(arr,low,high,key);

}else

}

結果測試:

查詢演算法 二分法

二分查詢演算法的基本思想 一.首先確定該區間的中間元素位置 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,...