常見降低圈複雜度方法

2021-10-05 12:59:16 字數 1108 閱讀 2301

圈複雜度計算方式

圈複雜度(cc) = 判斷條件個數 + 1其中1代表函式本身的複雜度

關鍵字if, else if, for, while, &&, ||, case, catch等。

if,if~else, if~else if ,for, switch , while語句進行簡要說明:

之後函式的圈複雜度是所有的語句判斷數加函式本身

常用降低圈複雜度的方法

1. 採用三元表示式

舉例

if

(condition)

else

可修改為:

c =

(condition)

? a : b;

2. 合併條件表示式

舉例:

if

(a || b || c )

可修改為:

bool flag = a || b || c ;

if(flag)

3. 拆分成子函式

4.switch…case…可以使用map

5. 去掉沒有必要的else

if

(false

)else

可修改為:

if

(false

)c = a;

6. 重構函式

舉例:同一條件多處出現

if

(list.

empty()

)}else}if

(a)

可修改為:

if

(a)else

// do something 3...

}

複雜度 程式開發中降低複雜度的核心方法

降低複雜度的核心方法主要三個步驟 第一步,暴力解法。在沒有任何時間 空間約束下,完成 任務的開發。沒有太多的套路,只要圍繞你面臨的問題出發,大膽發揮想象去嘗試解決即 無效操作處理。將 中的無效計算 無效儲存剔除,降低時間或空間複雜度。需要學會並掌握遞迴 二分法 排序演算法 動態規劃等常用的演算法思維...

圈複雜度計算

一 公式 vg m n p vg m n 2p g 代表強連通有向圖,m 代表強連通有向圖的弧數,n 代表強連通有向圖的節點數,p 是g中分離部分的數目,預設是1 m和n都很清晰,當我們要用公式計算的時候p的值不固定,很難計算。為什麼會出現p和2p的情況呢 如圖所示,這是乙個控制流圖,入度是2,出度...

軟體測試 圈複雜度

圈複雜度 在軟體測試的概念裡,它用來衡量乙個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即 合理的預防錯誤所需測試的最少路徑條數。圈複雜度 大 說明程式 可能 質量低且難於測試和維護 根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。圈複雜度的原理 其實就是 分支的個數 圈複雜度為1,...