20172332 2017-2018-2 《程序設計與數據結構》第一週學習總結

20172332 2017-2018-2 《程序設計與數據結構》第一週學習總結

教材學習內容總結

第一章html

  • 1.高質量軟件的特徵:①正確性——知足特定需求。 ②可靠性——故障發生的頻率和危險程度。 ③健壯性——出錯後,能夠獲得恰當處理的程度。 ④可用性——使用的難易程度。 ⑤可維護性——對軟件修改的難易程度。 ⑥可重用性——軟件組件能用於其餘軟件的難易程度。 ⑦可移植性——軟件在不一樣的計算環境中使用的難易程度。 ⑧運行效率
  • 2.數據結構:隊列、棧、樹等與數據存放順序有關。

第二章算法

  • 1.算法分析:計算機科學的基礎,決定一個程序運行速度的主要因素。
  • 2.增加函數:表示問題(n)大小與咱們但願最優化的值之間的關係,該函數表示了該算法的時間複雜度或空間複雜度。咱們不須要知道某一算法確切的增加函數,主要關注的是漸進複雜度(n、n^2等一系列)
  • 3.漸進複雜度:算法的階次。
  • 4.大O記法:具備相同階次的算法,從運行效率的角度來講都認爲是等價的。
  • 5.時間複雜度分析:一般須要分析循環的運行,好比:循環n次就是O(n)。
  • 6.嵌套循環的複雜度分析:外層循環運行的次數與內層循環的次數相乘。

教材學習中的問題和解決過程

  • 問題1:時間複雜度的計算規則。
  • 問題1解決方案:
    -

課後題解答

EX2.1:下列增加函數的階次是多少?

  • a.10n^2+100n+1000
  • a.O(n^2)
  • b.10·n^3-7
  • b.O(n^3)
  • c.2^n+100· n^3
  • c.O(2^n)由於增加速率快
  • d.n^2 ·log(n)
  • d.O(n^2logn)

EX2.4:請肯定下面代碼段的增加函數和階次:

for(int count = 0 ; count < n ; count++)
    for(int count2 = 0 ; count2 < n ; count2 = count2 + 2)
    {
        System.out.println(count,count2);
    }
}
  • 外層循環n次,內層循環n/2次,根據乘法準則能夠發現是增加函數是t(n)=(n^2)/2,階次是O(n^2)

EX2.5:請肯定下面代碼段的增加函數和階次:

for(int count = 0 ; count < n ; count++)
    for(int count2 = 1 ; count2 < n ; count2 = count2 * 2)
    {
        System.out.println(count,count2);
    }
}
  • 外層循環n次,內層循環log2(n)次,根據乘法準則能夠發現,增加函數是t(n)=nlog2(n),階次是O(nlog2n)

其餘(感悟、思考等,可選)

  • 新的學期新的開始,繼續努力吧。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 1/1 2/2

參考資料

相關文章
相關標籤/搜索