分析 二分法

2021-08-28 03:37:22 字數 621 閱讀 5440

來自 mooc 浙江大學 資料結構

給定n個從小到大排好序的整數序列list,以及某待查詢整數x,我們的目標是找到x在list中的下標。即若有list[i]=x,則返回i;否則返回-1表示沒有找到。

二分法是先找到序列的中點list[m],與x進行比較,若相等則返回中點下標;否則,若list[m]>x,則在左邊的子系列中查詢x;若list[m]int twofen(int list,int l,int r,int x)

return -1;

}

最好情況下:t(n) = o(1),s(n) = o(1).

二分法每執行一次問題規模n = n / 2;最終將問題規模縮小到1,即最後才找到x或到最後都沒有找到x;

/故有 n/(2^k)=1;解得執行次數k=log n(以2為底)

最壞t(n) = o(log n)(我們關注的是增長率,底數不重要故可忽略)

最壞t(n) = o(log n ); s(n) = o(1)

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...

二分法,二分搜尋

二分法是乙個應用很廣泛的演算法 好吧,剛說出這句話的時候,我查了一下資料,發現我了解的應用寥寥無幾.ok,既然不知道,那就下次補充把。咱們直接進入主題。二分法 bisection method 是一種方程式根的近似值求法。演算法 若要求已知函式f x 0的值則 1.先找出乙個區間 a,b 使得f a...