暑期數據結構第一天
數據元素與數據對象
數據元素--組成數據的基本單位
與數據的關系:是集合的個體
數據對象--性質相同的數據元素的集合
與數據的關系:集合的子集
邏輯結構
(1)線性結構,所有結點都最多有一個直接前趨和一個直接后繼。(線性表、棧、隊列、串)
(2)非線性結構,一個結點可能多個直接前趨個直接后繼,樹和圖
順序存儲結構
鏈接存儲結構
使用指針來實現
索引存儲結構
散列存儲結構
根據結點的關鍵字直接計算出該結點的存儲地址
抽象數據類型(ADT)
時間復雜度
順序結構:時間復雜度為O(1)
單層循環:循環執行n次,時間復雜度為O(n)
嵌套循環:
for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {// 基本操作} }
內外循環分別執行n次,總共 n*n 次,時間復雜度為O(n^2)
遞歸
void binarySearch(int n) {if (n <= 1) return;binarySearch(n / 2); }
每次規模減半,時間復雜度為O(log n)
分治遞歸
void divide(int n) {if (n <= 1) return;divide(n / 2);divide(n / 2); }
時間復雜度是由嵌套最深層語句的頻度決定的。
?
?