標籤:無限迴圈 style bsp 演算法學習 單元 一個 線性 相同 順序儲存結構
資料結構實際上是資料元素之間的關係的集合
資料結構分為 1.邏輯結構
2.物理結構(邏輯結構的資料元素的儲存方式)
邏輯結構分為 1.集合結構 資料元素無關係,只是屬於一個集合
2.線性結構 資料元素間1對1的關係
3.樹形結構 資料元素間1對多的關係
4.圖形結構 資料元素間多對多的關係
物理結構分為 1.順序儲存結構 資料元素儲存在連續的儲存單元中 類似數組
2.鏈式儲存結構 資料元素儲存在可連續,可不連續的儲存單元中
演算法實際上就是解決問題的一種方式,辦法
簡單的例子: 高斯定理 1+2+3+4+...+99+100= ?
初學者的代碼:
int i , n = 100 , sum = 0;for(i = 1; i < n; i++){ sum = sum + i; }printf("%d",sum);
利用高斯定理的演算法的代碼:
int n = 100 , sum = 0;sum = (1 + n)* n/2; printf("%d",sum);
演算法的特性:1.輸入 至少有0個或多個輸入
2.輸出 至少有1個或多個輸出
3.有窮性 不會無限迴圈
4.確定性 每一個步驟都是確定的含義,不能有歧義 演算法在一定條件下,只有一條執行路徑,相同的輸入只會有唯一的輸出結果
5.可行性 每一步都是可行的,都可執行完成
演算法不是唯一的,同一個問題可以有多個演算法,同一個演算法不可能解決所有問題
演算法設計的要求 : 正確性,可讀性,健壯性,時間效率高,儲存量低
正確性; 至少有輸入,輸出,無歧義性,正確反應問題的需求,得到問題的正確答案
四個層次: 無語法錯誤; 合法輸入可得到符合需求的輸出; 非法輸入要產生對應的說明; 一些特殊刁難的輸入也可以得到符合需求的輸出
資料結構和演算法之間是一種好基友的關係,在一起時才能迸發更高的激情,也更容易讓我們理解。
資料結構和演算法學習總結01 緒論