二分查詢 查詢演算法 資料結構與演算法

2021-09-20 04:18:16 字數 740 閱讀 9074

介紹

二分查詢也稱折半查詢(binary search),它是一種效率較高的查詢方法。

但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列

查詢過程

首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;

否則利用中間位置記錄將表分成前、後兩個子表,

如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。

重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。

#include

using

namespace std;

intbinarysearch

(int

*a,int start,

int end,

int findval)

//遞迴

intbinarysearch1

(int

*a,int start,

int end,

int findval)

//迴圈

return-1

;}intmain()

;int input =0;

while

(cin >> input)

return0;

}

資料結構查詢演算法(二分查詢)

參考例子 後記 二分查詢演算法,說白了就是在有序的陣列裡面給予乙個存在陣列裡面的值key,然後將其先和陣列中間的比較,如果key大於中間值,進行下一次mid後面的比較,直到找到相等的,就可以得到它的位置。首先確定整個查詢區間的中間位置mid strat end strat 2 用待查關鍵字key值與...

資料結構與演算法 二分查詢

二分查詢的思想是在已經排序 公升序 的陣列中,如果要查詢的數比中位數小,那麼其位置只可能在左半部分,相反只能在右半部分。這樣每次把查詢區間縮小一半,比順序查詢效率快得多。非遞迴寫法 public static int binarysearchinasclooply int nums,int star...

資料結構與演算法,二分查詢

1.時間複雜度 每次能去掉一半即 logn 2.實現方式 while迴圈 與 遞迴 我更推薦 while 迴圈,因為遞迴有個潛在的問題就是 stack over flow 堆疊溢位 而且在實際工程中是盡量避免遞迴的。雖然遞迴寫起來方便,也不容易出錯。3.實現關鍵點 我總結了下,一共有以下四點 sta...