一、公式:vg=m-n+p;//vg=m-n+2p;
g:代表強連通有向圖,
m:代表強連通有向圖的弧數,
n:代表強連通有向圖的節點數,
p:是g中分離部分的數目,(預設是1)
m和n都很清晰,當我們要用公式計算的時候p的值不固定,很難計算。為什麼會出現p和2p的情況呢
如圖所示,這是乙個控制流圖,入度是2,出度是28,。我們能從2→28,但是不能從282,所以這裡就該減去2p也就是2.
若是畫一條從28→2的虛線,那麼這裡就該減去1,就是正常的p就行。
總結:分離部分位p還是2p主要看,出度和入度有沒有相連,相連為p,不相連位2p。這就是1和2 的差距。
二、判定節點數+1
判定節點數是指強連通圖中需要判斷的節點,就像圖中的(3.7.11.15.19),一共5個,那麼圈複雜度就是6
三、圖中圍成圈的個數,
這個要求必須是強連通有向圖,意思是有一條從28→2的虛線。然後看看圖中圍成圈的個數。
像:(19.20.22.23),(15.16.24.23.20.19),(11.12.25.24.16.15),(7.8.26.25.12.11),(3.4.27.26.8.7),
和虛線組成的(2.28.27.4.3)(圖中沒有畫出,請腦補。)
軟體測試 圈複雜度
圈複雜度 在軟體測試的概念裡,它用來衡量乙個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即 合理的預防錯誤所需測試的最少路徑條數。圈複雜度 大 說明程式 可能 質量低且難於測試和維護 根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。圈複雜度的原理 其實就是 分支的個數 圈複雜度為1,...
軟體測試 圈複雜度
圈複雜度 在軟體測試的概念裡,它用來衡量乙個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即 合理的預防錯誤所需測試的最少路徑條數。圈複雜度大說明程式 可能質量低且難於測試和維護,根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。圈複雜度的原理 其實就是分支的個數 圈複雜度為1,意味著 ...
複雜度計算
在1 n 中,能被 2整除的有 n 2個,能被 3整除的有 n 3個,則該演算法的複雜度可這樣計算 o n n 2 1 n 3 2 n 5 3 n 7 4 即o n n n 考慮到6這個數,它既是2的倍數,也是3倍數,因此還要用到容斥原理。設能被第 i個素數整除的正整數的集合為ai。對於特定的乙個整...