版權資訊
書名:數據結構與算法分析:Java語言描述作 者:(美國)(MarkAllenWeiss)韋斯
出版社:機械工業出版社
出版時間:2009
ISBN:9787111231837
開本:16
定價:55.00元
內容簡介
隨著計算機速度的不斷增加和功能的日益強大,人們對有效編程和算法分析的要求也不斷增長。《數據結構與算法分析》把算法分析與最有效率的Java程式的開發有機地結合起來,深入分析每種算法,內容全面、縝密嚴格,並細緻講解精心構造程式的方法。作者簡介
MarkAIlenWeiss,擁有普林斯頓大學計算機科學博士學位。現在是佛羅里達國際大學計算機學院教授。他是著名的計算機教育專家,在數據結構與算法分析方面卓有建樹,著有多部暢銷書籍,其中包括:《DataStructuresandProblemSolving:UsingJava》、((DataStructuresandProblemSolving:UsingC++》、《數據結構與算法分析——C語言描述》等。編輯推薦
第2版的特色如下:1.全面闡述新的Java5.0程式語言和JavaCollections庫。
2.改進內部設計,用圖和實例闡述算法的實施步驟。
3.第3章對表、棧和佇列的討論進行了全面修訂。
4.用一章專門討論攤還分析和一些高級數據結構的實現。
5.每章末尾的大量練習按照難易程度編排,以增強對關鍵概念的理解。
目錄
譯者序前言
第1章 引論
1.1本書討論的內容
1.2數學知識複習
1.2.1指數
1.2.2對數
1.2.3級數
1.2.4模運算
1.2.5證明的方法
1.3遞歸簡論
1.4實現泛型特性構件pre-Java5
1.4.1使用Object表示泛型
1.4.2基本類型的包裝
1.4.3使用接口類型表示泛型
1.4.4數組類型的兼容性
1.5利用Java5泛性實現泛型特性成分
1.5.1簡單的泛型類和接口
1.5.2自動裝箱/拆箱
1.5.3帶有限制的通配符
1.5.4泛型static方法
1.5.5類型限界
1.5.6類型擦除
1.5.7對於泛型的限制
1.6函式對象
小結
練習
參考文獻
第2章 算法分析
2.1數學基礎
2.2模型
2.3要分析的問題
2.4運行時間計算
2.4.1一個簡單的例子
2.4.2一般法則
2.4.3最大子序列和問題的求解
2.4.4運行時間中的對數
2.4.5檢驗你的分析
2.4.6分析結果的準確性
小結
練習
參考文獻
第3章 表、棧和佇列
3.1抽象數據類型
3.2表ADT
3.2.1表的簡單數組實現
3.2.2簡單鍊表
3.3JavaCollectionsAPI中的表
3.3.1Collection接口
3.3.2Iterator接口
3.3.3List接口、ArrayList類和?LinkedList類
3.3.4例:remove方法對LinkedList?類的使用
3.3.5關於ListIterator接口
3.4ArrayList類的實現
3.4.1基本類
3.4.2疊代器、Java嵌套類和?內部類
3.5LinkedList類的實現
3.6棧ADT
3.6.1棧模型
3.6.2棧的實現
3.6.3套用
3.7佇列ADT
3.7.1佇列模型
3.7.2佇列的數組實現
3.7.3佇列的套用
小結
練習
第4章 樹
4.1預備知識
4.1.1樹的實現
4.1.2樹的遍歷及套用
4.2二叉樹
4.2.1實現
4.2.2例子:表達式樹
4.3查找樹ADT——二叉查找樹
4.3.1contains方法
4.3.2findMin方法和findMax方法
4.3.3insert方法
4.3.4remove方法
4.3.5平均情況分析
4.4AVL樹
4.4.1單旋轉
4.4.2雙旋轉
4.5伸展樹
4.5.1一個簡單的想法(不能直接使用)
4.5.2展開
4.6樹的遍歷
4.7B樹
4.8標準庫中的集合與映射
4.8.1關於Set接口
4.8.2關於Map接口
4.8.3TreeSet類和TreeMap類的實現
4.8.4使用多個映射的例
小結
練習
參考文獻
第5章 散列
5.1一般想法
5.2散列函式
5.3分離連結法
5.4不用鍊表的散列表
5.4.1線性探測法
5.4.2平方探測法
5.4.3雙散列
5.5再散列
5.6標準庫中的散列表
5.7可擴散列
小結
練習
參考文獻
第6章 優先佇列(堆)
6.1模型
6.2一些簡單的實現
6.3二叉堆
6.3.1結構性質
6.3.2堆序性質
6.3.3基本的堆操作
6.3.4其他的堆操作
6.4優先佇列的套用
6.4.1選擇問題
6.4.2事件模擬
6.5d-堆?
6.6左式堆
6.6.1左式堆性質
6.6.2左式堆操作
6.7斜堆
6.8二項佇列
6.8.1二項佇列結構
6.8.2二項佇列操作
6.8.3二項佇列的實現
6.9標準庫中的優先佇列
小結
練習
參考文獻
第7章 排序
7.1預備知識
7.2插入排序
7.2.1算法
7.2.2插入排序的分析
7.3一些簡單排序算法的下界
7.4希爾排序
7.5堆排序
7.6歸併排序
7.7快速排序
7.7.1選取樞紐元
7.7.2分割策略
7.7.3小數組
7.7.4實際的快速排序例程
7.7.5快速排序的分析
7.7.6選擇問題的線性期望時間算法
7.8排序算法的一般下界
7.9桶式排序
7.10外部排序
7.10.1為什麼需要一些新的算法
7.10.2外部排序模型
7.10.3簡單算法
7.10.4多路合併
7.10.5多相合併
7.10.6替換選擇
小結
練習題
參考文獻
第8章 不相交集類
8.1等價關係
8.2動態等價性問題
8.3基本數據結構
8.4靈巧求並算法
8.5路徑壓縮
8.6路徑壓縮和按秩求並的最壞情形
8.7一個套用
小結
練習題
參考文獻
第9章 圖論算法
9.1若干定義
9.2拓撲排序
9.3最短路徑算法
9.3.1無權最短路徑
9.3.2Dijkstra算法
9.3.3具有負邊值的圖
9.3.4無圈圖
9.3.5所有點對最短路徑
9.3.6最短路徑的例子
9.4網路流問題
9.5最小生成樹
9.5.1Prim算法
9.5.2Kruskal算法
9.6深度優先搜尋的套用
9.6.1無向圖
9.6.2雙連通性
9.6.3歐拉迴路
9.6.4有向圖
9.6.5查找強分支
9.7NP?完全性介紹
9.7.1難與易
9.7.2NP類
9.7.3NP?完全問題
小結
練習
參考文獻
第10章 算法設計技巧
10.1貪婪算法
10.1.1一個簡單的調度問題
10.1.2哈夫曼編碼
10.1.3近似裝箱問題
10.2分治算法
10.2.1分治算法的運行時間
10.2.2最近點問題
10.2.3選擇問題
10.2.4一些算術問題的理論改進
10.3動態規劃
10.3.1用一個表代替遞歸
10.3.2矩陣乘法的順序安排
10.3.3最優二叉查找樹
10.3.4所有點對最短路徑
10.4隨機化算法
10.4.1隨機數發生器
10.4.2跳躍表
10.4.3素性測試
10.5回溯算法
10.5.1收費公路重建問題
10.5.2博弈
小結
練習
參考文獻
第11章 攤還分析
11.1一個無關的智力問題
11.2二項佇列
11.3斜堆
11.4斐波那契堆
11.4.1切除左式堆中的節點
11.4.2二項佇列的懶惰合併
11.4.3斐波那契堆操作
11.4.4時間界的證明
11.5伸展樹
小結
練習
參考文獻
第12章 高級數據結構及其實現
12.1自頂向下伸展樹
12.2紅黑樹
12.2.1自底向上的插入
12.2.2自頂向下紅黑樹
12.2.3自頂向下的刪除
12.3確定性跳躍表
12.4AA樹
12.5treap樹
12.6k?d樹?
12.7配對堆
小結
練習
參考文獻
索引
……