一.數據結構的定義:算法
數據結構是 一門 研究 非數值計算 的 程序設計問題中 計算機的操做對象以及他們之間的關係和操做等的學科數據結構
二.基本概念和術語:函數
數據: 是對客觀對象的符號表示,在計算機科學中是指全部能輸入到計算機中並被計算機程序處理的符號的總稱spa
數據元素: 數據的基本單位,在計算機程序中一般做爲一個總體進行考慮和處理設計
數據對象: 性質相同的數據元素的集合,是數據的一個子集對象
數據結構: 相互之間存在一種或多種特定關係的數據元素的集合編譯
經常使用結構:程序設計
1.集合: 結構中的元素之間除了 "同屬於一個集合" 的關係外,別無其餘關係效率
2.線性結構: 結構中的元素存在着一個對一個的關係計算機科學
3.樹形結構: 結構中的元素存在着一個對多個的關係
4.網狀結構: 結構中的元素存在着多個對多個的關係
算法
概念: 算法是對特定問題求解步驟的一種描述
算法的重要特性:
1.有窮性
2.肯定性
3.可行性
4.輸入
5.輸出
算法設計的要求:
1.正確性
2.可讀性
3.健壯性
4.效率與低存儲量要求
算法效率的度量
同一個算法用不用的語言實現,或者用不一樣的編譯程序進行編譯,或者在不一樣的計算機上運行時,效率均不相同,因此用絕對時間來判斷算法的效率是不可行的
時間複雜度:
通常狀況下,算法中基本從操做重複執行的次數是問題規模n的某個函數f(n),
算法的時間量度記作 T(n)=O(f(n))
它表示隨問題n的增大,算法執行時間的增加率和f(n)的增加率相同,稱做算法的 漸進時間複雜度,簡稱 時間複雜度
語句頻度:指的是該語句重複執行的次數
空間複雜度:
相似於時間複雜度,空間複雜度做爲算法所需存儲空間的度量,記做 S(n) = O (f(n))