目錄
一、時間複雜度
二、空間複雜度
我們想要知道乙個演算法的「時間複雜度」,很多人首先想到的的方法就是把這個演算法程式執行一遍,那麼它所消耗的時間就自然而然知道了。
這種方式可以嗎?當然可以,不過它也有很多弊端。
這種方式非常容易受執行環境的影響,在效能高的機器上跑出來的結果與在效能低的機器上跑的結果相差會很大。而且對測試時使用的資料規模也有很大關係。再者,並我們在寫演算法的時候,還沒有辦法完整的去執行呢。
因此,另一種更為通用的方法就出來了:「大o符號表示法」,即 t(n) = o(f(n))
我們先來看個例子&
一 時間複雜度
一 時間複雜度計算規則 1.基本操作,即只有常數項,其時間複雜度為o 1 比如if,print 與規模n無關 2.順序結構 按加法計算 3.迴圈結構,按乘法計算 4。分支結構,時間複雜度取最大值。二 常見時間複雜度與大小關係 常數項 o 1 12線性項 o n 2n 3平方項 o n 2 4n 3 ...
演算法(一)時間複雜度
演算法很重要,但是一般情況下做移動開發並不經常用到,所以很多同學早就將演算法打了個大禮包送還給了老師了,況且很多同學並沒有學習過演算法。這個系列就讓對演算法頭疼的同學能快速的掌握基本的演算法。過年放假階段玩了會遊戲nba2k17的生涯模式,沒有比賽的日子也都是訓練,而且這些訓練都是自發的,沒有人逼你...
演算法(一)時間複雜度
1.演算法的效率 雖然計算機能快速的完成運算處理,但實際上,它也需要根據輸入資料的大小和演算法效率來消耗一定的處理器資源。要想編寫出能高效執行的程式,我們就需要考慮到演算法的效率。演算法的效率主要由以下兩個複雜度來評估 時間複雜度 評估執行程式所需的時間。可以估算出程式對處理器的使用程度。空間複雜度...