演算法:演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。
現在要求寫乙個1+2+3+······+100結果的程式。
普通迴圈相加法:
$sum = 0;
$n = 100;
for ($i = 1; $i
<= $n; $i ++)
print_r($sum);
高斯求和法:
$sum = 0;
$n = 100;
$sum = (1 + n) * n / 2
print_r($sum);
當n越大時,第一種方法需要迴圈的次數越大,而第二種卻不會受到n值變化的影響。
演算法是解決特定問題求解步驟的描述,在計算機中變現為指令的有限序列,並且每條指令表示乙個或多個操作。
演算法有五個基本特性:
輸入:演算法具有零個或多個輸入。
輸出:至少有乙個或多個輸出。
有窮性:在執行有限的步驟後,自動結束而不會出現無限迴圈,並且每乙個步驟在可接受的時間內完成。
確定性:每一步驟都具有確定的含義,不會出現二義性。
可行性:每一步驟都必須是可行的,也就是說,每一步驟都能夠通過執行有限次數完成。
正確性:演算法至少應該具有輸入、輸出和加工處理無歧義性、能正確反映問題的需求、能夠得到問題的正確答案。
時間效率高和儲存量低
事後統計方法:主要是通過設計好的測試程式和資料,利用計算機計時器對不同演算法編制的程式的執行時間進行比較,從而確定演算法效率的高低。
事前分析估算方法:在計算機程式編制前,依據統計方法對演算法進行估算。
鑑於第一種方法有比較多的缺陷,我們不考慮採納。
比較2.1 標題下的兩種演算法
普通迴圈相加法:
$sum = 0; /* 執行 1 次 */
$n = 100; /* 執行 n + 1 次 */
for ($i = 1; $i
<= $n; $i ++)
print_r($sum); /* 執行 1 次 */
高斯求和法:
$sum = 0; /* 執行 1 次 */
$n = 100; /* 執行 1 次 */
$sum = (1 + n) * n / 2
/* 執行 1 次 */
print_r($sum); /* 執行 1 次 */
第一種演算法執行了 2n + 4 次;而第二種執行了 3 次。 資料結構學習總結
了解資料,資料項,資料元素,資料物件的關係。資料元素 組成資料的,具有一定意義的基本單位,在計算機中做整體處理,也稱為記錄。乙個資料元素可以由多個資料項組成。資料物件 資料相同的資料元素的集合,是資料的子集。有的書上也成為資料物件和例項,結合的理解。資料結構可以分為 物理結構和邏輯結構 邏輯結構 集...
資料結構學習總結
隨著2015年的結束,資料結構這門課程也即將結束,這乙個學期跟著賀老師一起通過翻轉課堂的方式學習既新鮮也很慶幸。對這一學期資料結構的學習我想說一說我的感受。這學期資料結構 學了線性結構 樹 圖等等 線性結構包括線性表 棧 佇列 串 陣列 廣義表等 遞迴是程式設計中很重要的一種工具 也是我需要掌握的乙...
資料結構學習總結
第一章是緒論,介紹了資料結構的基本概念,資料結構有邏輯結構和儲存結構兩種 第二章為線性表,介紹了線性表的兩種儲存結構 順序表和煉表與其基本運算演算法的實現,鍊錶又包括單鏈表 雙鏈表 迴圈列表等多種形式 第三章為棧和佇列,介紹這兩種特殊的線性結構的概念與應用 第四章是串,介紹串,包括順序串和鏈串的概念...