一、知識點總結
1、資料項 是資料不可分割的最小標識單位;資料元素是資料的基本單位。
2、資料項 → 資料元素 → 資料。
3、資料結構是指資料元素的集合以及它們之間的關係。
4、計算機所處理的資料一般都具有某種內在聯絡,這是指元素與元素之間存在某種關係。
5、在資料結構中,與所使用的計算機無關的是資料的 邏輯結構。( 解析:物理結構即儲存結構,在不同的計算機上使用都會產生不同的結果,因此與所使用的計算機有關。 而邏輯結構是通用的,在任何不同的計算機上所進行的運算操作都是統一的。 )
6、資料結構包括資料的邏輯結構、儲存結構、資料運算 。
7、資料結構按照邏輯結構可以分為 線性結構、非線性結構。
8、線性結構中元素之間存在 一對一關係;樹形結構中元素之間存在 一對多關係;圖形結構中元素之間存在 多對多關係。
10、在樹形結構中,樹根節點沒有前驅節點,其餘每個集欸但有且只有乙個前驅節點,而後繼節點可以有多個,葉子節點沒有後繼節點。
11、在圖形結構中,每個節點的前驅節點和後繼節點可以有 任意多個。
12、資料的運算最常用的有插入、刪除、排序、查詢、修改。
13、計算機演算法指的是解決問題的有限運算序列。
14、計算機演算法應具備 輸入、輸出、健壯性、可行性、有窮性。
15、乙個演算法中,不論問題規模大小,執行所需時間都一樣,則該演算法的時間複雜度為常量階。
16、資料結構有線性結構、樹結構、集合結構、圖狀結構(網狀結構)等邏輯結構。
二、演算法時間和空間複雜度分析
1、已知某演算法的執行時間為(n³+n²+n)log₂(n+2),n為問題規模,則該演算法的時間複雜度為o(n³log₂n). 2、
for
(i=0
;i)for
(j=0
;j) a[i]
[j]=0;
解析:在迴圈過程中,i的每一次改變,都會使內層迴圈進行m次,則時間複雜度為o
(n*m)
3、
s=0;
for(i=
0;i)for
(j=0
;j) s+
=b[i]
[j];
解析:和第一題的思路一致,時間複雜度為o
(n²)
4、
x=0;
for(i=
1;i)for
(j=1
;j<=n-i;j++
) x++
;解析:當i=
1時,1≤j≤n-
1,執行了(n-
1)次;
當i=2時,1≤j≤n-
2,執行了(n-
2)次;
...當i=n-
1時,j=
1,執行了1次;
綜上共執行了(n-1)
+(n-2)
+...
+1=n
(n-1)/
2=(n²/
2-n/
2)次(等差數列前n項和)
故時間複雜度為o
(n²)
5、
i=1;
while
(i<=n)
i=i*3;
解析:迴圈體中i從1開始,每次變為原來的3倍(1,3,9...
),直到不滿足條件(i<=n)
退出迴圈,那麼在退出之前,假設共進行了k次,則3
^k=n執行最後一次,解得k=log₃n.
綜上,時間複雜度為o
(log₃n)
.
資料結構(C語言版)第2版 第一章 緒論
1.2 使用c語言描述資料結構 1.3 演算法和演算法設計 1.4 演算法分析與度量 2 資料元素 資料的基本單位是資料元素,他是計算機處理或訪問的基本單位。例如 乙個考生名冊中的每乙個學生的記錄,乙個字串中的每乙個字元 乙個陣列的每乙個陣列成分都是資料元素。不同場合資料元素可以有別名,如元素 記錄...
資料結構(c )第一章 緒論
資料處理 乙個實際問題的求解必須滿足各項處理要求,這項任務成為資料處理。計算機不能分析問題並產生問題的解決方案,必須由人類分析問題,確定問題的解決方案,編寫程式,然後讓計算機執行程式獲得問題的解。資料結構問題起源於程式設計。資料表示 將資料儲存在計算機 記憶體 中 資料處理 處理資料設計方案 演算法...
資料結構第一章緒論
緒論主要是對計算機資料結構一書有大致了解,系統的講解資料結構在程式結構的應用,資料結構的相關概念,演算法在程式中的應用,從而從巨集觀上了解資料結構,更有利於以後學習。1 資料結構在程式中的應用 其實乙個公式就可以了解程式和演算法還有資料,即資料結構 演算法 程式,由公式可知資料結構是程式的一部分。2...