二分法分析
時間複雜度:最好情況下,一擊命中,為常數級時間C;最壞情況下,一直二分到剩一個元素,則時間複雜度為log2N
空間複雜度:最好情況下,一擊命中,不用後續遞迴,即不用佔用呼叫函式時函式棧的空間,此時空間複雜度為 C
最壞情況下,一直遞迴二分,需要二分log2N次,即呼叫函式log2N次,此時空間複雜度為C * log2N
時間複雜度計算(看執行次數最多的那條語句被執行了多少次)
O
(
2
n
)
O(2^n)
O(2n),表示一個演算法的效能會隨著輸入資料的每次增加而增大兩倍,典型的方法就是裴波那契數列的遞迴計算實現
對數階
O
(
l
o
g
n
)
O(logn)
O(logn)
int i = 1;
while(i<n)
{
i = i * 2;
}
上面的程式碼,在while迴圈裡面,每次都將 i 乘以 2,乘完之後,i 距離 n 就越來越近了,直到i不小於n退出。我們試著求解一下,假設迴圈次數為x,也就是說 2 的 x 次方等於 n,則由2^x=n得出x=log₂n。因此這個程式碼的時間複雜度為
O
(
l
o
g
n
)
O(logn)
O(logn)
https://www.cnblogs.com/lazyegg/p/12572421.html
相關文章
- 如何寫出正確的二分法以及分析
- 二分法
- Java二分法Java
- 五、二分法查詢
- 二分法解題思路
- GO -冒泡 二分法查詢Go
- python --二分法學習Python
- python 遞迴和二分法Python遞迴
- [Java學習]二分法找真值Java
- 和為給定數(二分法)
- 藍橋杯-跳石頭(二分法)
- 查詢演算法之二分法演算法
- C++實現二分法詳解C++
- 二分法查詢(遞迴實現)遞迴
- java實現的二分法查詢Java
- 二分法(整數型別)的基本框架型別框架
- 求眾數、排序演算法、二分法排序演算法
- 前端面試(演算法篇) – 二分法前端面試演算法
- Python 實現二分法快速查詢Python
- 使用二分法來解決的問題
- 二分法在計算機維修中運用計算機
- 二分法查詢介紹及例項詳解
- Java 演算法-兩個整數相除(二分法)Java演算法
- 程式碼隨想錄二刷複習(二分法)
- 資料結構演算法-go 實現二分法資料結構演算法Go
- python查詢演算法的實現-二分法Python演算法
- 二分法的簡單實現——-遞迴和非遞迴遞迴
- 7-20 二分法求函式的零點 (10分)函式
- 一種基於二分法的變步長批量處理演算法演算法
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- 微課|中學生可以這樣學Python(例8.25):二分法查詢Python
- 遇到「最值問題」還在無腦動態規劃?二分法考慮一下唄動態規劃
- 演算法學習記錄七(C++)--->二分法找有序旋轉陣列最小值演算法C++陣列
- LeetCode 刷題 [C++] 第33題. 搜尋旋轉排序陣列 (二分法+簡潔易懂)LeetCodeC++排序陣列
- 遞迴函式、演算法之二分法、三元表示式、各種生成式、匿名函式遞迴函式演算法
- 第二章 :查詢與排序-------2.17解題實戰_旋轉陣列的最小數字(改造二分法)排序陣列
- 後端分析/前端分析/邊緣分析後端前端
- 【漏洞分析】KaoyaSwap 安全事件分析事件