資料結構和演算法一般是緊密結合的,解決問題通常需要選擇正確的資料結構和演算法。
例如:演算法中經常需要對資料進行增加和刪除用鍊錶資料結構效率高,陣列資料結構因為增加和刪除需要移動數字每個元素所有效率低。
資料結構是什麼:資料結構是資料與資料之間的關係
資料結構:分為邏輯結構和物理結構
邏輯結構:資料之間的關係
物理結構:邏輯結構在真實物理記憶體中的儲存形式。
邏輯結構的四大結構
集合結構:資料之間沒有關係。
線性結構:資料與資料之間一對一的關係
樹形結構:資料與資料之間是有層次關係,存在一對多。
圖形結構:資料之間是平衡關係,多對多。
物理結構的兩大結構是什麼
演算法:它是解決某個問題的計算方法、步驟。計算機演算法,是用計算機解決問題的方法、步驟。解決不同的問題,需要不同的演算法。乙個問題可以用多種演算法解決。
比如:解決等差數列問題,就要知道計算的方法和步驟,才能高效解決問題。
為什麼演算法對電腦科學的所有分支都非常重要。在絕大多數的電腦科學分支領域中,要想完成任何實質性的工作,理解演算法的基礎知識並掌握與演算法密切相關的資料結構知識是必不可少的。也就是說,
學習演算法是為了在計算即科學領域中完成工作和解決問題。
特徵演算法特徵:輸入,輸出,有窮性,確定性和可行性
輸入:0或多個
輸出:1或多個
有窮性:能結束的演算法
確定性:每個步驟都有乙個含義,且一定條件下,執行路徑一致
可行性:每一步都是可以執行的。
演算法設計的要求
如何設計出乙個好的演算法,以下有四個原則,也是程式設計的一些原則。
正確性指的是:寫入**能夠滿足要求,得到問題的正確答案,其中演算法是滿足演算法的五個特徵,即有輸入輸出,有窮性,確定性和可行性。
大體分為四個層次: 可讀
健壯性時間效率和儲存性
資料結構初識和演算法分析方法
一.資料結構 是一門研究非陣列計算的程式設計問題中的操作物件 二.資料結構分類 1.邏輯結構 抽象出來的 集合結構 線性結構 樹形結構 圖形結構 2.物理結構 順序結構 鏈式結構 三.演算法分析 1.時間複雜度 核心操作次數和輸入規模關聯起來 1 正常情況 分析案例 eg1 1 100求和問題 1 ...
初識演算法 資料結構
需求驅動 what why how 所有的學習從需求開始,學習任何知識要想事半功倍,一定要先搞清楚它存在的意義和價值 目錄 1 什麼是演算法?2 演算法好壞的評判標準 2.1 時間複雜度 流程決定 2.2 額外空間複雜度 流程決定 2.3 常數項時間 實現細節決定 what 總而言之 演算法就是解決...
資料結構與演算法初識
目錄首先明確的一點就是電腦科學不僅僅是對計算機的研究,雖然計算機在科學發展的過程中發揮了重大的作用,但是它只是乙個工具,乙個沒有靈魂的工具而已。所謂的電腦科學實際上是對問題 解決問題以及解決問題的 過程中產生產生的解決方案的研究。例如給定乙個問題,計算機科學家的目標是開發乙個演算法來處理該問題,最終...