Java數(shù)據(jù)結構和算法介紹了計算機編程中使用的數(shù)據(jù)結構和算法,對于在計算機應用中如何操作和管理數(shù)據(jù)以取得最優(yōu)性能提供了深入淺出的講解。全書共分為15章,分別講述了基本概念、數(shù)組、簡單排序、堆和隊列、鏈表、遞歸、進階排序、二叉樹、紅黑樹、哈希表及圖形等知識。附錄中則提供了運行專題Applet和例程、相關書籍和問題解答。本書提供了學完一門編程語言后進一步需要知道的知識。本書所涵蓋的內容通常作為大學或學院中計算機系二年級的課程,在學生掌握了編程的基礎后才開始本書的學習。
java數(shù)據(jù)結構和算法學習總結
各個線性類型數(shù)據(jù)結構的特點以及使用場景
數(shù)組:
特點:元素在內存中線性連續(xù)存儲,可以根據(jù)下標快速訪問數(shù)組元素,但是增刪效率不是很高,每一次增加或刪除元素都需要
大量移動元素空出插入位置或者填補刪除元素的位置。
使用場景:頻繁查詢,很少進行增加或刪除操作的情況
鏈表:
特點:存儲可以不連貫,根據(jù)索引將數(shù)據(jù)聯(lián)系起來,當查詢元素的時候需要從開頭開始去查詢,所以效率比較低,然而增加或刪除
元素的時候只需要修改索引就可以了。
使用場景:少查詢,需要頻繁插入或刪除的情況
隊列:
特點:先進先出(FIFO/fisrt in first out),如同一個單向隧道,先進的車先出。
使用場景:多線程的阻塞隊列管理非常有用
棧:
特點:后進先出(LIFO/last in first out),就像一個箱子,先放進去的東西在底部,需要先拿出上面的東西,下面的東西才能拿出來
使用場景:實現(xiàn)遞歸以及表達式計算,android運用棧的原理實現(xiàn)back stack
5.數(shù)組與鏈表的區(qū)別
(1)數(shù)組連續(xù),鏈表不連續(xù)
(2)數(shù)組內存靜態(tài)分配,鏈表內存動態(tài)分配
(3)數(shù)組查詢時間復雜度為O(1),鏈表為0(n)
(4)數(shù)組增加刪除的時間復雜度為O(n),鏈表為O(1)
(5)數(shù)組從棧中分配空間,鏈表從堆中分配空間
- PC官方版
- 安卓官方手機版
- IOS官方手機版