時間空間複雜度分析(day5 day7)

2021-10-06 18:12:20 字數 919 閱讀 5274

看了一下極客時間的演算法訓練營體驗課,時間複雜度和空間複雜度都是之前演算法課上詳細學過的,但是確實是平時應用的時候或者自己寫**的時候沒有重視起來,只是執著於能把問題解決掉的想法完成程式設計。剛好借用這個機會可以把之前學習的**計算一下時間複雜度和空間複雜度。比較新的知識還是主定理那一塊兒。

時間複雜度:知乎j解釋

day5:

時間複雜度:o(n) 有一層迴圈

空間複雜度:o(n^2) 使用到了二維陣列

vector<

int>

printmatrix

(vectorint>> matrix)

,dy[4]

=;int x=

0,y=

0,d=1;

for(

int i=

0;i) x=a,y=b;

}return res;

day6:

時間複雜度:o(n) 主要看迴圈裡面的執**況,這裡的n指的是能被2整除的次數。

空間複雜度:o(1) 主要看陣列,本段**沒有陣列的使用。

int

numberof1

(int _n)

day7:

時間複雜度:o(logn) 使用到了遞迴演算法中的二分查詢。

空間複雜度:o(n) 用到了乙個陣列nums。

int

getmissingnumber

(vector<

int>

& nums)

if(nums[r]

==r) r++

;return r;

}

複雜度分析 時間複雜度 空間複雜度

執行效率是演算法的乙個重要的考量指標,演算法的執行效率用時間 空間複雜度來衡量。今天我們來學習一下複雜度的分析。通常我們可以通過執行程式來獲得演算法的真正的執行時間,這種方法我們可以稱為事後統計法,但這種方法得到的是具體的資料,測試結果很依賴測試環境,而且受資料規模影像最大。因此,我們需要乙個不需要...

複雜度分析 時間複雜度分析和空間複雜度分析

其實,只要講到資料結構與演算法,就一定離不開時間 空間複雜度分析。而且我個人認為,複雜度分析是整個演算法學習的精髓,只要掌握了它,資料結構和演算法的內容基本上就掌握了一半。1.時間複雜度分析 對於剛才羅列的複雜度量級,我們可以粗略地分為兩類,多項式量級和非多項式量級。其中,非多項式量級只有兩個 o ...

複雜度分析(上)時間複雜度 空間複雜度

為了肉眼 實時 快速地來分析出 的複雜度,我們需要乙個不用具體的測試資料來測試,就可以粗略地估計演算法的執行效率的方法。時間複雜度 空間複雜度 表示演算法的執行時間與資料規模之間的增長關係。每行 對應的 cpu 執行的個數 執行的時間都不一樣,但是,我們這裡只是粗略估計,所以可以假設每行 執行的時間...