關於O(logN)的正確理解

2021-09-07 11:15:49 字數 512 閱讀 1409

學計算機的或許對o(logn)這個符號並不陌生,快排、堆排、歸併等等排序的平均時間複雜度。

問題來了,之前一直有個歧義就是:logn的底數到底是多少? 這個問題擱置著並沒有去深究,僅僅是想應該是2吧。應該僅僅是省略了一部分?

今天打算徹底查閱下資料弄懂這個問題。那麼先讓我們回到數學上來一下:

1、如果對數有底的情況下,對於同樣資料規模n情況下:

如今有兩個演算法的時間複雜度分別為 logx(n)和logy(n)

2、對x和y的比求極限:

lim(x-->∞) logx(n) / logy(n)  

3、利用洛必達法則得到:

lim(x-->∞) ln(y)/ln(x)  = 某常數

4、儘管二者的底數不同,可是n趨於無窮大時它們的比例為常數。說明大小與底數無關。

結論:以上證明在數學上未必足夠嚴謹(比如可導性、logn的表示法),可是在計算機的複雜度表示的是一種增長趨勢為對數增長。

這樣不管底數為多少對於n規模來說都是一樣的(當n足夠大)。

正確理解 clear both

要注意以下幾點 1 浮動元素會被自動設定成塊級元素,相當於給元素設定了display block 塊級元素能設定寬和高,而行內元素則不可以 2 浮動元素後邊的非浮動元素顯示問題。3 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。4 子元素全為浮動元素的元素高度自適應問題。以下詳細分析...

正確理解 clear both

原文 要注意以下幾點 1 浮動元素會被自動設定成塊級元素,相當於給元素設定了display block 塊級元素能設定寬和高,而行內元素則不可以 2 浮動元素後邊的非浮動元素顯示問題。3 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。4 子元素全為浮動元素的元素高度自適應問題。以下詳...

正確理解 clear both

要注意以下幾點 1 浮動元素會被自動設定成塊級元素,相當於給元素設定了display block 塊級元素能設定寬和高,而行內元素則不可以 2 浮動元素後邊的非浮動元素顯示問題。3 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。4 子元素全為浮動元素的元素高度自適應問題。以下詳細分析...