從0開始學算法1:一套圖 搞懂“時間複雜度”

寫在前面:
這篇文章是在公衆號: 趣談編程 中發佈的,作者是濤聲依舊。是我到目前爲止所看到的關於時間複雜度介紹的最好的文章,簡介 清晰 明瞭。

所以拿來po出來 僅供學習交流,如侵則刪。

正文:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

另外,我這裏有個問題,現在計算機硬件越來越強大了,爲什麼還這麼重視時間複雜度呢?

我們來舉過一個栗子:

算法A的相對時間規模是T(n)= 100n,時間複雜度是O(n)

算法B的相對時間規模是T(n)= 5n2,時間複雜度是O(n2)

算法A運行在小邦家裏的老舊電腦上,算法B運行在某臺超級計算機上,運行速度是老舊電腦的100倍。

那麼,隨着輸入規模 n 的增長,兩種算法誰運行更快呢?

在這裏插入圖片描述
從表格中可以看出,當n的值很小的時候,算法A的運行用時要遠大於算法B;當n的值達到1000左右,算法A和算法B的運行時間已經接近;當n的值越來越大,達到十萬、百萬時,算法A的優勢開始顯現,算法B則越來越慢,差距越來越明顯。

這就是不同時間複雜度帶來的差距。

要想學好算法,就必須理解好時間複雜度這個重要的基石。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章