數據結構

數據結構

邏輯結構:集合,線性,樹形,圖形

物理結構(存儲結構);順序存儲,鏈式存儲


算法特性:輸入、輸出、有窮性、確定性、可行性


常見時間複雜度

wKioL1mKiMvwjYZwAAIX-C9S4Q0299.png

常見數據結構的時間複雜度(集合,線性,樹,圖)

線性表(順序存儲結構、鏈式存儲結構)

順序存儲結構:查找O(1),增加O(n),刪除O(n)

鏈式存儲結構(單鏈表,靜態鏈表,循環鏈表,雙向鏈表):查找O(n),增加O(1),刪除O(1)


棧和隊列

棧:順序棧和鏈棧的時間複雜度都爲O(1),空間上順序棧要預先分配足夠的空間,鏈棧要存儲指針數據,所以都有空間浪費;


順序隊列:普通順序隊列有隊列溢出的問題,入隊時間複雜度爲O(1),出隊時間複雜度爲O(n),循環順序隊列依然有隊列溢出的問題,但是出入隊列的時間複雜度都爲O(1);

鏈式隊列:出入隊列的時間複雜度都爲O(1),相對於循環順序隊列的需要一次性分配空間且空間不可變,鏈式隊列在用到的時候才分配空間且空間不受限制。


樸素模式匹配:平均時間複雜度:O((n+m)/2),最壞時間複雜度:O((n-m+1)*m)

KMP算法:最壞時間複雜度:O(n+m),當模式與主串存在許多“部分匹配”的情況下較有優勢


樹的存儲結構:雙親表示法、孩子表示法、孩子兄弟表示法;

二叉樹:斜樹、滿二叉樹、完全二叉樹,哈弗曼樹


圖的概念:無向圖,有向圖,簡單圖,無向完全圖,有向完全圖,網,連通圖

圖的存儲:鄰接矩陣表、鄰接表、十字鏈表、鄰接多重表、邊集數組

圖的遍歷:深度優先遍歷、廣度優先遍歷



最小生成樹算法:普里斯、克魯斯卡爾  http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html 克魯斯卡爾針對邊來展開,變數少的時候效率較高

最短路徑:迪傑斯特拉 http://blog.csdn.net/mu399/article/details/50903876、弗洛伊德 http://blog.csdn.net/bjtu_dubing/article/details/50333027

拓撲排序:

關鍵路徑:


查找

順序表查找:

有序表查找:折半查找、插值查找、斐波那契

線性索引查找:稠密索引,分塊索引,排序索引

二叉排序樹:

AVL樹:

多路查找樹(B樹):2-3樹、2-3-4樹、B+樹


排序

排序的概念:穩定排序,不穩定排序,內排序、外排序

排序算法:冒泡排序、簡單排序,插入排序,希爾排序http://blog.csdn.net/morewindows/article/details/6668714、堆排序,歸併排序 http://www.cnblogs.com/chengxiao/p/6194356.html、快速排序


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章