<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
        My Github

      劍指Offer面試題:8.斐波那契數列

      一、題目:斐波那契數列

      題目:寫一個函數,輸入n,求斐波那契(Fibonacci)數列的第n項。斐波那契數列的定義如下: 

      二、效率很低的解法

        很多C/C++/C#/Java語言教科書在講述遞歸函數的時候,大多都會用Fibonacci作為例子,因此我們會對這種解法爛熟于心:

          public static long FibonacciRecursively(uint n)
          {
              if (n <= 0)
              {
                  return 0;
              }
              if (n == 1)
              {
                  return 1;
              }
      
              return FibonacciRecursively(n - 1) + FibonacciRecursively(n - 2);
          }

        上述遞歸的解法有很嚴重的效率問題,通過求解第10項的調用過程圖來分析:

        從上圖中不難發現:在這棵樹中有很多結點是重復的,而且重復的結點數會隨著n的增大而急劇增加,這意味計算量會隨著n的增大而急劇增大。事實上,用遞歸方法計算的時間復雜度是以n的指數的方式遞增的

      三、實用循環的解法

        改進的方法并不復雜。上述遞歸代碼之所以慢是因為重復的計算太多,我們只要想辦法避免重復計算就行了。這里的辦法是從下往上計算,首先根據f(0)和f(1)算出f(2),再根據f(1)和f(2)算出f(3)……依此類推就可以算出第n項了。很容易理解,這種思路的時間復雜度是O(n)

          public static long FibonacciIteratively(uint n)
          {
              int[] result = { 0, 1 };
              if (n < 2)
              {
                  return result[n];
              }
      
              long fibNMinusOne = 1;
              long fibNMinusTwo = 0;
              long fibN = 0;
      
              for (uint i = 2; i <= n; i++)
              {
                  fibN = fibNMinusOne + fibNMinusTwo;
      
                  fibNMinusTwo = fibNMinusOne;
                  fibNMinusOne = fibN;
              }
      
              return fibN;
          }

      四、單元測試

        (1)單元測試用例

          [TestMethod]
          public void FibonacciTest1()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(0),0);
          }
      
          [TestMethod]
          public void FibonacciTest2()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(1), 1);
          }
      
          [TestMethod]
          public void FibonacciTest3()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(2), 1);
          }
      
          [TestMethod]
          public void FibonacciTest4()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(3), 2);
          }
      
          [TestMethod]
          public void FibonacciTest5()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(4), 3);
          }
      
          [TestMethod]
          public void FibonacciTest6()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(5), 5);
          }
      
          [TestMethod]
          public void FibonacciTest7()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(6), 8);
          }
      
          [TestMethod]
          public void FibonacciTest8()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(7), 13);
          }
      
          [TestMethod]
          public void FibonacciTest9()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(8), 21);
          }
      
          [TestMethod]
          public void FibonacciTest10()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(9), 34);
          }
      
          [TestMethod]
          public void FibonacciTest11()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(10), 55);
          }
      
          [TestMethod]
          public void FibonacciTest12()
          {
              Assert.AreEqual(FibonaaciHelper.FibonacciIteratively(40), 102334155);
          }

        (2)單元測試結果

        ①測試通過結果

        ②代碼覆蓋率

       

      posted @ 2015-08-23 10:50  EdisonZhou  閱讀(9532)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中文字幕亚洲国产精品| 无码激情亚洲一区| 白嫩少妇无套内谢视频| 婷婷丁香五月六月综合激情啪| 国产在线午夜不卡精品影院| 一个人看的www视频免费观看| 国产精品自在欧美一区| 精品久久久无码中文字幕| 欧美肥妇毛多水多bbxx| 亚洲性一交一乱一伦视频| 亚洲综合精品第一页| 精品超清无码视频在线观看| 无码伊人久久大杳蕉中文无码| 久久无码专区国产精品| 97精品久久久大香线焦| 麻豆精品在线| 欧美熟妇xxxxx欧美老妇不卡| 开封市| 亚洲日本韩国欧美云霸高清| 天堂v亚洲国产v第一次| 加勒比无码人妻东京热| 亚洲av成人区国产精品| 免费无码又爽又刺激网站直播| 精品亚洲国产成人| 性色av免费观看| 日韩av综合免费在线| 亚洲午夜福利精品无码不卡| av资源在线看免费观看| 狠狠躁夜夜躁人人爽天天69| 国产精品特级毛片一区二区三区| 日韩精品福利视频在线观看| 2021国产成人精品久久| 国产一卡2卡三卡4卡免费网站| 自拍偷自拍亚洲精品熟妇人| 国产最新AV在线播放不卡| 国内精品亚洲成av人片| 亚洲欧洲一区二区精品| 亚洲欧洲精品日韩av| 日韩免费美熟女中文av| 丝袜老师办公室里做好紧好爽| аⅴ天堂中文在线网|