1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      java代碼計算圈復雜度 代碼的圈復雜度

      什么叫圈復雜度(cyclomatic complexity)?為什么它很重要?

      1、圈復雜度:圈復雜度(Cyclomatic complexity)是一種代碼復雜度的衡量標準,在1976年由Thomas J. McCabe, Sr. 提出。

      專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)新北免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

      2、重要性:程序的可能錯誤和高的圈復雜度有著很大關系。

      在軟件測試的概念里,圈復雜度用來衡量一個模塊判定結(jié)構(gòu)的復雜程度,數(shù)量上表現(xiàn)為線性無關的路徑條數(shù),即合理的預防錯誤所需測試的最少路徑條數(shù)。圈復雜度大說明程序代碼可能質(zhì)量低且難于測試和維護。

      擴展資料:

      下面的列表顯示了?Visual Studio( VS 2008 Team Suite Edition)計算的代碼度量結(jié)果:

      可維護性指數(shù):計算一個介于 0 和 100 之間的指數(shù)值,表示維護代碼的相對容易度。值越大表示可維護性越好。該計算基于 Halstead Volume、圈復雜度和代碼的行數(shù)。按顏色標記的等級可用于迅速發(fā)現(xiàn)代碼中的故障點。

      綠色等級介于 20 和 100 之間,表示代碼的可維護性良好。黃色等級介于 10 和 19 之間,表示代碼的可維護性中等。紅色等級是介于 0 和 9 之間的等級,表示可維護性低。

      圈復雜度:衡量代碼在結(jié)構(gòu)上的復雜程度。它通過計算程序流中的不同代碼路徑的數(shù)目(例如 if 塊、switch case 以及 do、while、foreach 和 for 循環(huán)),然后在總數(shù)中加 1 來創(chuàng)建。具有復雜控制流的程序需要更多單元測試才能實現(xiàn)良好的代碼覆蓋率,并且不容易維護。

      繼承深度:指明擴展到類層次結(jié)構(gòu)根的類定義的數(shù)目。層次結(jié)構(gòu)越深,則越難了解特定方法和字段是在何處定義或/和重新定義的。

      在類級別,該數(shù)目是通過計算繼承樹中從 0 開始的類型之上的類型數(shù)目(不包括接口)來創(chuàng)建的。在命名空間和項目級別,該計算包括命名空間或項目內(nèi)所有類型的最高繼承深度計算。

      類耦合:通過參數(shù)、局部變量、返回類型、方法調(diào)用、泛型或模板實例化、基類、接口實現(xiàn)、在外部類型上定義的字段以及屬性修飾來衡量與唯一類的耦合程度。該計算不包括基元類型和內(nèi)置類型,例如 int32、字符串和對象。

      良好的軟件設計要求類型和方法應具有較高的內(nèi)聚力和較低的耦合。耦合較高表示設計難以重用和維護,這是因為它與其他類型之間存在許多依存關系。

      代碼的行數(shù):指明代碼中的大概行數(shù)。該計數(shù)基于 IL 代碼,因此并不是源代碼文件中的確切行數(shù)。該計算不包括空白、注釋、括號以及成員、類型和命名空間的聲明。計數(shù)過高可能表示某個類型或方法正在嘗試執(zhí)行過多的工作,應予以拆分。還可能表示該類型或方法難以維護。

      參考資料來源:百度百科——圈復雜度

      java 計算時間復雜度

      for(int?p=0;pn*n;p++)

      for(int?q=0;qp;q++)

      sum--;

      下面我來簡單解釋一下為什么是O(n^4)

      p的所有取值,以及相對性的sum運算的次數(shù)如下

      p的取值:0??1??2??3??4??...??(n^2?-1)

      sum次數(shù):0??0??1??2??3??...??(n^2?-2)

      從上面的式子我們知道sum--執(zhí)行的次數(shù)也就是sum次數(shù)的累加和:

      0+0+1+2+3+...+(n^-2)=1+2+3+?...?+(n^2?-2)這里我們可以用求和公式,但是需要搞定一個這里有多少項,很明顯(n^2?-2)項,帶入求和公式如下

      =(1+(n^2?-2))*(n^2?-2)/2=(n^2?-1)(n^2?-2)/2=(n^4?-3*n^2?+2)/2

      所以答案是O(n^4)

      JAVA代碼的時間復雜度如何計算,請高手給出詳細解答,萬分感謝

      我覺得主要考慮和規(guī)模大小有關系的代碼段,比如循環(huán)部分的時間復雜度,對于o(1)代碼可以忽略掉

      圈復雜度不能超過多少

      一般來說,圈復雜度大于10的方法存在很大的出錯風險。

      在軟件測試的概念里,圈復雜度用來衡量一個模塊判定結(jié)構(gòu)的復雜程度,數(shù)量上表現(xiàn)為線性無關的路徑條數(shù),即合理的預防錯誤所需測試的最少路徑條數(shù)。

      圈復雜度大說明程序代碼可能質(zhì)量低且難于測試和維護,根據(jù)經(jīng)驗,程序的可能錯誤和高的圈復雜度有著很大關系。

      圈復雜度(Cyclomatic complexity)是一種代碼復雜度的衡量標準,在1976年由Thomas J. McCabe, Sr. 提出。

      如果一段源碼中不包含控制流語句(條件或決策點),那么這段代碼的圈復雜度為1,因為這段代碼中只會有一條路徑。

      如果一段代碼中僅包含一個if語句,且if語句僅有一個條件,那么這段代碼的圈復雜度為2;包含兩個嵌套的if語句,或是一個if語句有兩個條件的代碼塊的圈復雜度為3。

      計算公式:V(G)=e-n+2p。其中,e表示控制流圖中邊的數(shù)量,n表示控制流圖中節(jié)點的數(shù)量,p圖的連接組件數(shù)目(圖的組件數(shù)是相連節(jié)點的最大集合)。因為控制流圖都是連通的,所以p為1。

      對于多分支的CASE結(jié)構(gòu)或IF-ELSEIF-ELSE結(jié)構(gòu),統(tǒng)計判定節(jié)點的個數(shù)時需要特別注意一點,要求必須統(tǒng)計全部實際的判定節(jié)點數(shù),也即每個ELSEIF語句,以及每個CASE語句,都應該算為一個判定節(jié)點。


      網(wǎng)站名稱:java代碼計算圈復雜度 代碼的圈復雜度
      網(wǎng)址分享:http://www.ef60e0e.cn/article/hhgjoc.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        乌兰察布市| 河津市| 肇源县| 崇文区| 鄂温| 大同市| 剑阁县| 进贤县| 霍山县| 盐源县| 郯城县| 河南省| 白城市| 全南县| 湘阴县| 石门县| 霍山县| 普陀区| 阳朔县| 桐柏县| 交口县| 滨州市| 泾源县| 平安县| 南京市| 车致| 慈溪市| 云梦县| 平原县| 吴江市| 高碑店市| 吴江市| 前郭尔| 台前县| 奉化市| 汕尾市| 育儿| 永泰县| 海门市| 南宫市| 肇东市|