<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 將判斷外提 bad ``` for (i=0;i<cout;i++){ if(sumType == SUMTYPE_NET){ netSum = netSum+amount[i]; }else{ grossSUm = grossSum = amount[i]; } } ``` good ``` if(sumType == SUMTYPE_NET){ for (i=0;i<cout;i++){ netSum = netSum+amount[i]; } }else{ for (i=0;i<cout;i++){ grossSUm = grossSum = amount[i]; } } ``` > 此代碼雖然提升了性能,但是違背了可讀性,所以視情況而定 ## 合并循環 bad ``` VB 示例 For i=0 to employCount -1 employeeName(i)="" Next For i=0 to employCount -1 employeeEarnings(i)=0 Next ``` good ``` For i=0 to employCount -1 employeeName(i)="" employeeEarnings(i)=0 Next ``` ## 盡可能減少在循環內部做的工作 bad ``` // C++ 示例 for ( i=0;i<rateCount;i++){ netRate[i] = baseRate[i] * rates->discounts->factors->net } ``` good ``` // C++ 示例 quantityDiscount = rates->discounts->factors->net; for ( i=0;i<rateCount;i++){ netRate[i] = baseRate[i] * quantityDiscount; } ``` ## 哨兵值 所謂“哨兵”就是用一個特殊的值來作為數組的邊界key,可以少用一條判斷語句 哨兵法可以用于鏈表到數組 ### 示例1:數組 我們可以將數組的第一個值作為”哨兵“,數據存儲下標index從1開始,則list的0號位表示暫無元素,位”哨兵“Key ``` // item 為需要查找的值 def searchItemFromArray(array, item): if len(array) == 0: return -1 firstItem = array[0] # 如果第一個元素等於查找值,直接返回 # 如果不是,則把第一個元素當做哨兵 if firstItem == item: return 0 # 賦值第一個元素為哨兵值 index = len(array) - 1 array[0] = item while array[index] != item: index -= 1 # 查找結束,把數組的首位元素改回來 array[0] = firstItem return index if(index > 0) else -1 ``` ## 示例2 bad 每次循環都要進行好幾次判斷 ``` found = FALSE; i = 0; while( (!found) && (i<count) ){ if(item[i] == testValue){ found = TRUE: }else{ i++; } } ``` good 把需要查找的值賦給超出范圍之外的元素, ``` // 設置捎兵值, 在數組末尾捎兵值預留空間 initaValue = item[count]; item[count] = testValue; i = 0; while(item[i] != testValue){ i++; } if(i<count){ ... } ``` ## 把最忙的循環放在最內層 bad ``` //java 示例: for( column = 0; column<100;column++){ for( row = 0;row <5;row++){ sum+sum+table[row][colnum] } } ``` good ``` // java 示例: for( row = 0;row <5;row++){ for( column = 0; column<100;column++){ sum+sum+table[row][colnum] } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看