本週的學習內容爲是軟件工程,這是一門關於高質量軟件開發的技術和理論的學科,用來控制開發過程,實現高質量的軟件。html
高質量軟件的特徵:
算法
關鍵概念包括有:
1.可靠的軟件不多發生故障,即便發生了故障,也能夠將該故障的影響降到最低。
2.軟件系統必須通過精心設計、編碼和文檔說明,以便爲開發人員、維護人員和用戶提供支持。
3.軟件必須有效使用諸如CPU時間和內存之類的資源。
4.質量特徵必須優先考慮,並儘量的最大化。
5.棧可用於顛倒數據集的順序。
6.隊列能夠保持其數據的順序。數據結構
增加函數表示問題(n)大小與咱們但願最優化的值之間的關係。該函數表示了該算法的時間複雜度(CPU的使用時間)或空間複雜度(內存空間)。
函數
大O記法:經常使用大O表示法表示時間複雜性,注意它是某一個算法的時間複雜性。大O表示只是說有上界,由定義若是f(n)=O(n),那顯然成立f(n)=O(n^2),它給你一個上界,但並非上確界,但人們在表示的時候通常都習慣表示前者。此外,一個問題自己也有它的複雜性,若是某個算法的複雜性到達了這個問題複雜性的下界,那就稱這樣的算法是最佳算法。學習
a.10n^2+100n+1000優化
解:階次是n^2。
b.10n^3-7編碼
解:n^3設計
c. 2^n+100n^33d
解:2^nhtm
d. n^2logn
解:n^2logn
for(int count = 0 ; count < n ; count++)
for(int count2 = 0 ; count2 < n ; count2 = count2 + 2)
{
System.out.println(count,count2);
}
}
解:外層循環次數爲n,內層循環爲n/2,因此增加函數f(n) = n^2 /2,因此階次是O(n^2)。
for(int count = 0 ; count < n ; count++)
for(int count2 = 1 ; count2 < n ; count2 = count2 * 2)
{
System.out.println(count,count2);
}
}
解:內層循環是log2n,外層循環是n,因此增加函數是nlog2n,因此階次爲O(nlog2n)。
新學期但願可以好好學習,繼續努力。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/0 | 1/1 | 10/10 |
計劃學習時間:10小時
實際學習時間:10小時