演算法的五個基本特徵:輸入、輸出、有窮性、確定性、可行性。
1)輸入:演算法具有零個或多個輸入。
2)輸出:演算法至少有乙個或多個輸出。
3)有窮性:指演算法在執行有限的步驟之後,自動結束而不會出現無限迴圈。
4)確定性:演算法的每乙個步驟都具有確定的含義,不會出現二義性。
5)可行性:演算法的每一步都必須是可行的,也就是說,每一步都能夠通過執行有
限次數完成。
演算法的設計要求:
1)正確性:演算法的正確性是指演算法至少應該具有輸入、輸出和加工處理無歧義性、能正確反映問題的需求,能夠得到問題的正確答案。
正確性分為四個層次:a.演算法程式沒有語法錯誤
b.演算法程式對於合法輸入能夠產生滿足要求的輸出
c.演算法程式對於非法輸入能夠產生滿足規格的說明
d.演算法程式對於故意刁難的測試輸入都有滿足要求的
輸出結果
2)可讀性:演算法設計另一目的是為了便於閱讀、理解和交流。
3)健壯性:當輸入資料不合法時,演算法也能做出相關處理,而不是產生異常,崩
潰或莫名其妙的結果。
4)時間效率高和儲存量低
資料結構知識複習 day2
之前的博文中介紹了如何使用動態陣列來實現乙個簡單的佇列,而本文中簡要介紹一下如何使用標準c來實現乙個在記憶體中物理位置不連續的鍊錶。以下分別是link.h以及link.c檔案原始碼 ifndef linked h struct node typedef struct node position ty...
演算法與資料結構 刷題日記day2
拓撲序列,參考 拓撲序列 一棵二叉樹共有 25 個結點,其中 5 個是葉子結點,則度為 1 的結點數為?在任意一棵二叉樹中,度為 0 的葉子結點總是比度為 2 的結點多乙個。證明 一棵樹的節點數n 度為0的節點數n 0 度為1的節點數n 1 度為2的節點數n 2,即 n n 0 n1 n 2n n ...
資料結構day2 堆與優先佇列
1.堆的簡介 堆是用完全二叉樹實現的,用於按某種優先順序存放資料 最大值堆 每個結點的值大於或者等於其所有子結點的值 最小值堆 每個結點的值都小於或者等於其所有子結點的值 值得一提的是,堆結構中,任意兩個兄弟結點之間的大小並沒有必然聯絡。因此,對於給定的一組資料,堆並不是唯一的。2.例項 最大值堆的...