二分搜尋的時間複雜度O(logN)如何得到

2021-06-18 14:38:01 字數 425 閱讀 2653

學過資料結構,當然當年也學過演算法的時間複雜度的,不知道當年是不是會推倒時間複雜度,大概也就是根據基本語句的執行次數來獲得最高的數量級吧

例如i=0;

while(ii=0;

j=0;

while(i{  while(ji++;j=0;

}總共執行次數應該是n+n^2次,但時間複雜度只關係最高次,這才是真正影響程式效率的地方,所以時間複雜度是o(n^2)

下面進入正題,其實二分法的時間複雜度推導是十分簡單的,只怪我腦袋短路了,送給腦袋跟我一樣短路的人吧

二分法的關鍵思想是   假設該陣列的長度是n那麼二分後是n/2,再二分後是n/4……直到二分到1結束(當然這是屬於最壞的情況了,即每次找到的那個中點數都不是我們要找的),那麼二分的次數就是基本語句執行的次數,於是我們可以設次數為x,n*(1/2)^x=1;則x=logn,底數是2,

二分搜尋的時間複雜度O(logN)

學過資料結構,當然當年也學過演算法的時間複雜度的,不知道當年是不是會推倒時間複雜度,大概也就是根據基本語句的執行次數來獲得最高的數量級吧 例如i 0 while ii 0 j 0 while i while ji j 0 總共執行次數應該是n n 2次,但時間複雜度只關係最高次,這才是真正影響程式效...

時間複雜度 二分查詢

不常見的時間複雜度 看看就好 如何一眼判斷時間複雜度?def hanoi n,a,b,c if n 0 hanoi n 1,a,c,b print s s a,c hanoi n 1,b,a,c hanoi 5,a b c h n 2h n 1 1 h 1 1遞迴面試題 斐波那契 斐波那契 數列 f...

時間複雜度 二分法

二分法是每次取中間值與目標值進行判斷,若相同則返回中間值的標號,不同則將中間值賦給取值邊界較遠的一邊,再次取中間值進行比較,直至相同。先定義用於比較的陣列 for i 0 i10 10 二分法 int search int list,int num return m 第1次二分 n 2 第2次二分 ...