McCabe環路複雜度計算方法

2021-08-11 07:48:59 字數 1271 閱讀 9360

軟考的mccabe這種題型來說幾乎每次都考,那麼我來講講如何計算以及題型的分類:

形複雜度定量度量程式的邏輯複雜度:描繪程式控制流的流圖之後,

可以用下述3種方法中的任何一種來計算環形複雜度。

(1)流圖中的區域數等於環形複雜度。

(2)流圖g的環形複雜度v(g)=e-n+2,其中,e是流圖中邊的條數,n是結點數。

(3)流圖g的環形複雜度v(g)=p+1,其中,p是流圖中判定結點的數目。

自己是這樣理解的:

這種環路度量法,計算的思路是這樣的:它是考慮控制的複雜程度,即條件選擇的分支繁雜程度 例一

如圖:根據公式:

v(g)=e-n+2

10 - 8 + 2 = 4

則得出答案選擇 c.

例二:

根據公式:

v(g)=e-n+2

8 - 6 + 2 =  4 選 c

例三:

方法一:

流圖g的環形複雜度v(g)=e-n+2,其中,e是流圖中邊的條數,n是結點數。

有了前面的分析,現在就好做了:

上圖:8-7+2=3

下圖:9-7+2=4(注意e不是10,因為g節點的自環弧線要忽略掉)

方法二:

流圖g的環形複雜度v(g)=p+1,其中,p是流圖中判定結點的數目。

判斷節點:

上圖:c,e,  2個點,複雜度2+1=3

下圖:c.e.d  3個點,複雜度3+1=4

軟體工程McCabe環路複雜度計算,自環情況詳解。

1 流圖中的區域數等於環形複雜度。2 流圖g的環形複雜度v g e n 2,其中,e是流圖中邊的條數,n是結點數。3 流圖g的環形複雜度v g p 1,其中,p是流圖中判定結點的數目。推薦使用方法三,是萬能的。不用考慮自環是否涉及到程式。這裡就通過網上流傳的最多的例子,也是具有代表性的例子來說明 方...

空間複雜度計算方法

演算法題中經常有空間複雜度的限制,特此記錄 簡單來說,假設原始資料大小為n,乙個演算法需要m大小的記憶體才能執行,那麼我們就有乙個函式f n m。這個函式去掉常數項和尾數項就是空間複雜度。比如說,如果用氣泡排序對資料排序,如果直接在原始資料上排,那麼根本不需要額外的儲存空間,而最多隻需要定義幾個變數...

時間複雜度計算方法

o 1 constant complexity constant 常數複雜度 o log n 對數複雜度 o n 線性時間複雜度 o n 2 平方 o n 3 立方 o 2 n 指數 o n 階乘 隨著現在儲存空間的便宜,很多情況下,我們是願意用空間複雜度來換取時間複雜度的,因為記憶體,磁碟等這些和...