二分查詢C

2021-10-02 21:02:27 字數 880 閱讀 7166

雖然二分查詢思路很簡單,但實現起來需要注意很多細節。如區間是閉合區間還是前開後閉區間,迴圈的退出條件是left < right 還是 left <= right,下一步搜尋是使用mid還是mid+1等。

// 普通二分查詢、遞迴

intbinary_search

(const vector<

int>

& nums,

const

int& target,

int start,

int end)

// 二分查詢,返回左端位置

intbinary_search_left

(const vector<

int>

& nums,

const

int& target)

// 退出迴圈時,left == right

if(left == nums.

size()

)return-1

;return nums[left]

==target ? left :-1

;}

// 二分查詢,返回右端位置

intbinary_search_right

(const vector<

int>

& nums,

const

int& target)

// 退出迴圈時,left == right

if(left ==0)

return-1

;return nums[left-1]

== target ? left-1:

-1;}

c 二分查詢

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。二分查詢要求 線性表是有序表,即表中結點按關鍵字有序,並且要用向量作為表的儲存結構。不妨設有序表是遞增有序的。public class program else return 1 查詢失敗 public static void main string...

C 二分查詢

二分查詢,又叫折半查詢,顧名思義,可以通過比較中間位置是否與要查詢的相等。如果相等即找到了目標,否則,看目標落在中間位置左側還是右側,然後再同樣的到對應區間去找。假設我們有這樣乙個陣列 define maxsize 10 int array maxsize 我們可以標記左下標以及右下標 int le...

C二分查詢

include intbinarysearch list l,elementtype x int flag floor high low 2 int c 1 while l data flag x c l last else if l data flag x if c l last else 題目 ...