寫在前面:
這篇文章是在公衆號: 趣談編程 中發佈的,作者是濤聲依舊。是我到目前爲止所看到的關於時間複雜度介紹的最好的文章,簡介 清晰 明瞭。
所以拿來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則越來越慢,差距越來越明顯。
這就是不同時間複雜度帶來的差距。
要想學好算法,就必須理解好時間複雜度這個重要的基石。