<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                今天來說說為什么需要使用算法? 算法是什么?算法是:指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個算法有缺陷,或不適合于某個問題,執行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間復雜度與時間復雜度來衡量。(百度百科版) 說完了算法的概念,我們舉個例子說一下為什么需要算法? ~~~ public class Test { /** * 使用原始的循環計算等差數列 */ private void originalMethod(long n) { System.out.println("**使用原始循環算法**"); long startTime = System.currentTimeMillis(); long sum = 0; for (long i = 0; i <= n; i++) { sum += i; } long endTime = System.currentTimeMillis(); System.out.println("結果:" + sum); System.out.println("用時:" + (endTime - startTime)); } /** * 使用等差數列算法計算 * * @param n */ private void advanceMethod(long n) { System.out.println("**使用等差數列算法**"); long startTime = System.currentTimeMillis(); long sum = 0; long a1 = 1; long an = n; sum = (a1 + an) * n / 2; long endTime = System.currentTimeMillis(); System.out.println("結果:" + sum); System.out.println("用時:" + (endTime - startTime)); } public static void main(String[] args) throws InterruptedException { Test test = new Test(); long n = 1000; System.out.println("-------當n=" + n + "的時候------"); test.originalMethod(n); test.advanceMethod(n); n = 1000000; System.out.println("-------當n=" + n + "的時候------"); test.originalMethod(n); test.advanceMethod(n); n = 1000000000L; System.out.println("-------當n=" + n + "的時候------"); test.originalMethod(n); test.advanceMethod(n); } } ~~~ 輸出結果: -------當n=1000的時候------ **使用原始循環算法** 結果:500500 用時:0 **使用等差數列算法** 結果:500500 用時:0 -------當n=1000000的時候------ **使用原始循環算法** 結果:500000500000 用時:3 **使用等差數列算法** 結果:500000500000 用時:0 -------當n=1000000000的時候------ **使用原始循環算法** 結果:500000000500000000 用時:2070 **使用等差數列算法** 結果:500000000500000000 用時:0 從上面的結果可以看見,使用循環算法的所用時間不斷的增加,而且達到某個數量級之后(例如10的20次方),估計我們等死也等不到結果出來,而反觀使用等差數列算法,使用的實際都是0,當然,其實不是0,只不過太快了,沒有顯示出來而已,兩個計算方式相互比較一下,算法的性能一下子就看出來了。 而且對于現今大數據來說,動不動就是幾億幾十億的數據,計算的過程比我們上面的更加復雜,所需要的時間就更多,這時候如果不使用相應的算法,解決一個問題的時間基本是不可估計的,因此,我們需要算法
                  <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>

                              哎呀哎呀视频在线观看