出版時間:2012-8 出版社:機械工業(yè)出版社 作者:Kyle Loudon 頁數(shù):401 譯者:肖翔,陳舸
Tag標簽:無
前言
本書封面上的動物是海馬,屬于海龍科。海馬這個詞來源于希臘語中的“彎曲的馬”。海馬那不同尋常的身體由大約50塊左右包圍著身體的骨板構(gòu)成,宛如一圈盔甲的形狀。海馬依靠它狹窄的鼻口作為進食的管道,主要吸食浮游生物和小魚的幼蟲。公海馬的肚子上有一個袋子,母海馬每次將100枚或更多的海馬蛋放在公海馬的袋子里。公海馬使袋子內(nèi)的海馬蛋受精,并一直照料這些蛋直到小海馬孵化出來。根據(jù)海馬的種類,這個過程大約需要10天到6個星期。盡管也有一些種類的海馬居住在海洋中,但是海馬通常都出現(xiàn)在熱帶和亞熱帶的淺海水域。所有海馬都使用骨盆和胸鰭來完成轉(zhuǎn)向的動作。它們采用直立的姿勢游動,但速度很慢且常常停下來休息。在休息的時候,它們用自己的尾巴纏繞住海藻或珊瑚使自己停住。除了能提供一個休息的地方外,海藻和珊瑚還能為海馬提供良好的偽裝效果。世界上體型最大的海馬是太平洋海馬,大約有12英寸長。最小的海馬是矮海馬,大約只有1.5英寸長。
內(nèi)容概要
本書是數(shù)據(jù)結(jié)構(gòu)和算法領(lǐng)域的經(jīng)典之作,十余年來,暢銷不衰!全書共分為三部分:第一部分首先介紹了數(shù)據(jù)結(jié)構(gòu)和算法的概念,以及使用它們的原因和意義,然后講解了數(shù)據(jù)結(jié)構(gòu)和算法中最常用的技術(shù)——指針和遞歸,最后還介紹了算法的分析方法,旨在為讀者學習這本書打下堅實的基礎;第二部分對鏈表、棧、隊列、集合、哈希表、堆、圖等常用數(shù)據(jù)結(jié)構(gòu)進行了深入闡述;第三部分對排序、搜索數(shù)值計算、數(shù)據(jù)壓縮、數(shù)據(jù)加密、圖算法、幾何算法等經(jīng)典算法進行了精辟的分析和講解。
本書的眾多特色使得它在同類書中獨樹一幟:具體實現(xiàn)都采用正式的C語言代碼而不是偽代碼,在很多數(shù)據(jù)結(jié)構(gòu)和算法的實現(xiàn)過程中,有大量細節(jié)問題是偽代碼不能解決的;每一章都有精心組織的主題和應用;全部示例來自真實的應用,不只是一般的練習;對每種數(shù)據(jù)結(jié)構(gòu)、算法和示例都進行了詳細分析;每一章的末尾都會有一系列問題和對應的回答,旨在強調(diào)這一章的重要思想……
本書中的代碼尤為值得強調(diào):所有實現(xiàn)都采用C語言編寫,所有代碼都優(yōu)先用于教學目的,所有代碼都在4種平臺上經(jīng)過完整測試,頭文件記錄了所有公共的接口,命名規(guī)則適用于全書所有的代碼,所有的代碼都包含大量注釋……
本書內(nèi)容包括:
· 數(shù)據(jù)結(jié)構(gòu)和算法的概念,以及使用它們的原因和意義
· 指針和遞歸
· 算法分析
· 常用數(shù)據(jù)結(jié)構(gòu):鏈表、棧、隊列、集合、哈希表、樹、堆、優(yōu)先級隊列以及圖
· 排序和搜索
· 數(shù)值計算
· 數(shù)據(jù)壓縮
· 數(shù)據(jù)加密
· 圖算法
· 幾何算法
作者簡介
Kyle Loudon,是美國加州洛斯加托斯Jeppesen
Dataplan公司的一名軟件工程師,主管圖形接口開發(fā)小組,主攻航跡規(guī)劃軟件的研發(fā),這些軟件主要用于商業(yè)航空公司、私營航空部門和其他一些航空制造業(yè)。在來到Jeppesen之前,Kyle在IBM公司是一名系統(tǒng)程序員。在技術(shù)上,Kyle主要對操作系統(tǒng)、網(wǎng)絡、人機交互等領(lǐng)域感興趣。1992年,Kyle在普渡大學拿到了計算機科學學士學位,并取得了法語的第二學位,同時他還被選入斐陶斐榮譽學會(美國大學優(yōu)等生之榮譽學會)。他在普渡大學計算機系教了三年的計算機課程。在這期間,他完成了他個人的第一本書《Understanding
Computers》,這本書用理論結(jié)合實踐的方式介紹計算機的方方面面。如今,盡管他繼續(xù)工作在硅谷的軟件業(yè),但他仍然堅韌不拔地在追求一個更高的學位。
除了計算機,Kyle多年來喜歡打網(wǎng)球、教網(wǎng)球。他還喜歡山地騎行、滑冰,偶爾也和朋友們一起參加高爾夫課程。另外,Kyle還喜歡各種形式的戲劇、美食,以及某些風格的音樂和藝術(shù);他期望成為鋼琴家和藝術(shù)家,但希望渺茫。他現(xiàn)在在Jeppesen的工作是從他1992年開始駕駛飛機之后找到的?,F(xiàn)在,他是一個擁有美國聯(lián)邦航空局頒發(fā)的商業(yè)飛行員執(zhí)照的飛行員。
書籍目錄
1. 前言
2. 第1部分 預備知識
3. 第1章 概述
4. 數(shù)據(jù)結(jié)構(gòu)簡介
5. 算法簡介
6. 小酌軟件工程
7. 如何使用本書
8. 第2章 指針操作
9. 指針基礎
10. 存儲空間分配
11. 數(shù)據(jù)集合與指針的算術(shù)運算
12. 作為函數(shù)參數(shù)的指針
13. 泛型指針與類型轉(zhuǎn)換
14. 函數(shù)指針
15. 問與答
16. 相關(guān)主題
17. 第3章 遞歸
18. 基本遞歸
19. 尾遞歸
20. 問與答
21. 相關(guān)主題
22. 第4章 算法分析
23. 最壞情況分析
24. O表示法
25. 計算的復雜度
26. 實例分析:插入排序
27. 問與答
28. 相關(guān)主題
29. 第2部分 數(shù)據(jù)結(jié)構(gòu)
30. 第5章 鏈表
31. 單鏈表介紹
32. 單鏈表接口的定義
33. 單鏈表的實現(xiàn)與分析
34. 使用鏈表的例子:頁幀管理
35. 雙向鏈表介紹
36. 雙向鏈表接口的定義
37. 雙向鏈表的實現(xiàn)與分析
38. 循環(huán)鏈表介紹
39. 循環(huán)鏈表接口的定義
40. 循環(huán)鏈表的實現(xiàn)與分析
41. 使用循環(huán)鏈表的例子:第二次機會頁面置換法
42. 問與答
43. 相關(guān)主題
44. 第6章 棧和隊列
45. 棧的描述
46. 棧的接口定義
47. 棧的實現(xiàn)與分析
48. 隊列的描述
49. 隊列的接口定義
50. 隊列的實現(xiàn)與分析
51. 隊列示例:事件處理
52. 問與答
53. 相關(guān)主題
54. 第7章 集合
55. 集合介紹
56. 集合的性質(zhì)
57. 集合接口的定義
58. 集合抽象數(shù)據(jù)類型的實現(xiàn)和分析
59. Set示例:集合覆蓋
60. 問與答
61. 相關(guān)主題
62. 第8章 哈希表
63. 鏈式哈希表的描述
64. 鏈式哈希表的接口定義
65. 鏈式哈希表的實現(xiàn)與分析
66. 鏈式哈希表的例子:符號表
67. 開地址哈希表的描述
68. 開地址哈希函數(shù)的接口定義
69. 開地址哈希表的實現(xiàn)與分析
70. 問與答
71. 相關(guān)主題
72. 第9章 樹
73. 二叉樹介紹
74. 二叉樹的接口定義
75. 二叉樹的實現(xiàn)與分析
76. 二叉樹示例:表達式處理
77. 二叉搜索樹介紹
78. 二叉搜索樹的接口定義
79. 二叉搜索樹的實現(xiàn)與分析
80. 問與答
81. 相關(guān)主題
82. 第10章 堆和優(yōu)先隊列
83. 堆的描述
84. 堆的接口定義
85. 堆的實現(xiàn)與分析
86. 優(yōu)先隊列的描述
87. 優(yōu)先隊列的接口定義
88. 優(yōu)先隊列的實現(xiàn)與分析
89. 優(yōu)先隊列的示例:包裹分揀
90. 問與答
91. 相關(guān)主題
92. 第11章 圖
93. 圖的描述
94. 圖的接口定義
95. 圖的實現(xiàn)與分析
96. 關(guān)于圖的應用舉例:計算網(wǎng)絡跳數(shù)
97. 關(guān)于圖的應用舉例:拓撲排序
98. 問與答
99. 相關(guān)主題
100. 第3部分 算法
101. 第12章 排序和搜索
102. 插入排序的描述
103. 插入排序的接口定義
104. 插入排序的實現(xiàn)與分析
105. 快速排序的描述
106. 快速排序的接口定義
107. 快速排序的實現(xiàn)與分析
108. 快速排序的例子:目錄列表
109. 歸并排序的描述
110. 歸并排序的接口定義
111. 歸并排序的實現(xiàn)與分析
112. 計數(shù)排序的描述
113. 計數(shù)排序的接口定義
114. 計數(shù)排序的實現(xiàn)與分析
115. 基數(shù)排序的描述
116. 基數(shù)排序的接口定義
117. 基數(shù)排序的實現(xiàn)與分析
118. 二分查找的描述
119. 二分查找的接口定義
120. 二分查找的實現(xiàn)與分析
121. 二分查找的例子:拼寫檢查器
122. 問與答
123. 相關(guān)主題
124. 第13章 數(shù)值計算
125. 多項式插值法
126. 多項式插值的接口定義
127. 多項式插值的實現(xiàn)與分析
128. 最小二乘估計法
129. 最小二乘估計的接口定義
130. 最小二乘估計的實現(xiàn)和分析
131. 方程求解介紹
132. 方程求解的接口定義
133. 方程求解的實現(xiàn)與分析
134. 問與答
135. 相關(guān)主題
136. 第14章 數(shù)據(jù)壓縮
137. 位操作的描述
138. 位操作的接口定義
139. 位操作的實現(xiàn)與分析
140. 霍夫曼編碼的描述
141. 霍夫曼編碼的接口定義
142. 霍夫曼編碼的分析與實現(xiàn)
143. 霍夫曼編碼的例子:網(wǎng)絡優(yōu)化
144. LZ77的描述
145. LZ77的接口定義
146. LZ77的實現(xiàn)與分析
147. 問與答
148. 相關(guān)主題
149. 第15章 數(shù)據(jù)加密
150. DES算法介紹
151. DES的接口定義
152. DES算法的實現(xiàn)和分析
153. DES應用舉例:分組加密模式
154. RSA算法介紹
155. RSA的接口定義
156. RSA算法的實現(xiàn)與分析
157. 問與答
158. 相關(guān)主題
159. 第16章 圖算法
160. 最小生成樹的描述
161. 最小生成樹的接口定義
162. 最小生成樹的實現(xiàn)與分析
163. 最短路徑的描述
164. 最短路徑的接口定義
165. 最短路徑的實現(xiàn)與分析
166. 最短路徑的例子:路由表
167. 旅行商問題的描述
168. 旅行商問題的接口定義
169. 旅行商問題的實現(xiàn)與分析
170. 問與答
171. 相關(guān)主題
172. 第17章 幾何算法
173. 測試線段是否相交
174. 測試線段是否相交的標準方法
175. 檢測線段是否相交的接口定義
176. 檢測線段是否相交的實現(xiàn)與分析
177. 凸包簡介
178. Jarvis’s March
179. 凸包的接口定義
180. 凸包的實現(xiàn)與分析
181. 球面弧長
182. 求解球面弧長的接口定義
183. 求解球面弧長的實現(xiàn)和分析
184. 球面弧長的應用舉例:地球上兩點之間的近似距離
185. 問與答
186. 相關(guān)主題
章節(jié)摘錄
版權(quán)頁: 插圖: 問與答 問:鏈表比數(shù)組優(yōu)越的地方前面已經(jīng)介紹過了。但是,數(shù)組同樣也有比鏈表優(yōu)越的地方,那么什么情況下適合使用數(shù)組呢? 答:當我們期望進行頻繁的插入和刪除操作時,鏈表比數(shù)組更有優(yōu)勢。然而,當我們期望進行隨機訪問的次數(shù)高于插入和刪除操作的次數(shù)時,數(shù)組就顯得更有優(yōu)勢了。隨機訪問是數(shù)組的強項,因為它們的元素在內(nèi)存中是連續(xù)排列的。這種連續(xù)的排列方式使得數(shù)組中的任何元素能夠在O(1)的時間內(nèi)通過其索引訪問。回顧一下訪問鏈表中元素的方法,我們必須得有一個指向元素的指針。如果我們對訪問元素的方式不甚了解,那么要獲取某個指向特定元素的指針的代價將非常高。在實踐中,對于許多應用來說,我們至少需要遍歷鏈表的一部分。如果存儲數(shù)據(jù)的總量是恒定的,則數(shù)組也有更大的優(yōu)勢,因為它們不需要增加額外的指針來使得它們所有的元素“鏈接”起來。 問:關(guān)于鏈表的插入、刪除以及訪問元素的操作和數(shù)組相比有何差異? 答:回顧一下本章中各種形式的鏈表,除了銷毀鏈表操作外,其他的操作都具有O(1)的運行時復雜度。確實,這種表現(xiàn)似乎很難控制。然而,在分析過程中有一點并沒有說明,那就是對于許多鏈表的操作來說,想得到指向鏈表中某個特定元素的指針其代價是很高的。例如,在最壞的情況下,可能需要遍歷整個鏈表,此時的開銷就是O(n),這里n代表鏈表中的元素個數(shù)。另一方面,在一個設計得當?shù)膽弥?,比如本章的頁幀管理,則對此就不會有任何性能上的額外開銷。因此,觀察應用的特點是非常重要的。對于數(shù)組,插入和刪除都是O(n)級別的操作,因為在最壞的情況下,插入或刪除索引為0的元素需要將其他所有的元素都移動一個位置來調(diào)整整個數(shù)組的布局。如果我們知道索引值,則訪問數(shù)組中的元素就是o(1)的操作。 問:假設我們想在本章給出的單鏈表基礎上寫一個名為list_ins_pos的函數(shù),它的作用是在給定的位置之后插入一個新元素。假設我們希望在第9個元素之后插入新元素,但并不直接提供指向第9個元素的指針。那么這個函數(shù)的運行時復雜度是什么?
編輯推薦
《算法精解:C語言描述》編輯推薦:數(shù)據(jù)結(jié)構(gòu)和算法領(lǐng)域最具特色著作之一,公認權(quán)威經(jīng)典,暢銷不衰!
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載