數據結構是具備結構的數據元素的集合。算法
Data-Structure = (D, R)
複製代碼
其中,D 是 數據元素 的有限集合,R 是 D 上 關係 的集合。bash
數據結構所研究的主要內容:數據結構
結構是指數據元素之間的關係或者聯繫。結構分爲兩類:邏輯結構 和 存儲結構。算法的設計取決於邏輯結構,算法的實現依賴於存儲結構。spa
邏輯結構指數據元素在客觀世界中具備的邏輯關係。通常分爲 線性結構 和 非線性結構。設計
線性結構:數據元素之間的邏輯關係是一對一的。除了第一個數據元素和最後一個數據元素以外,其餘數據元素有且只有一個直接前驅元素,有且僅有一個直接後繼元素。code
非線性結構:數據元素之間的邏輯關係是一對多、多對1、多對多等關係。cdn
存儲結構指具備邏輯結構的數據再計算機存儲器中的存儲方式(存儲映像)。一般有順序存儲結構、鏈式存儲結構、索引結構和散列結構等。blog
數據的邏輯結構面向所解決的問題,反映了數據內部的構成方式;而數據的存儲結構面向計算機,目標是將數據及其邏輯關係存儲到計算的存儲器中。通常狀況下,一種邏輯結構能夠採用多種存儲結構來存儲。索引
數據的邏輯結構設計能夠獨立於數據的存儲結構,這是由於數據的邏輯結構設計是在數據的分析階段進行的,而存儲結構是在設計階段進行的。反之,存儲結構不能獨立於邏輯結構,這是由於數據的存儲結構是邏輯結構在計算機存儲中的映像。(2018 年選擇題真題)it
所謂 正確的算法 是指,當輸入一組合理的數據時,可以在優先的運行時間內獲得正確的結果;對於不合理的數據輸入,可以給出警告提示信息。
算法分析的 前提 是算法是正確的;目的 是分析算法的效率,以求改進算法;主要任務 是分析算法的執行時間與問題規模之間的關係。
衡量算法質量優劣的基本標準有:正確性、易讀性、健壯性、可移植性、時空效率。
計算算法的時間複雜度屬於 事前分析估算 的方法。