數(shù)據(jù)結(jié)構(gòu)與算法分析

出版時間:2009-1  出版社:機械工業(yè)  作者:韋斯  頁數(shù):400  譯者:馮舜璽  
Tag標(biāo)簽:無  

前言

計算機功能的增強、速度的提高和應(yīng)用的普及,增長了人們對實用算法分析和高效編程實現(xiàn)的需求。在Java語言廣泛使用的今天,希望我們這樣一本兼顧普及和提高的數(shù)據(jù)結(jié)構(gòu)與算法分析教材能夠?qū)V大讀者有所裨益。本書為《Data Structures and Algorithm Analysis in Java》第2版的中譯本。

內(nèi)容概要

  本書是國外數(shù)據(jù)結(jié)構(gòu)與算法分析方面的經(jīng)典教材,使用卓越的Java編程語言作為實現(xiàn)工具討論了數(shù)據(jù)結(jié)構(gòu)(組織大量數(shù)據(jù)的方法)和算法分析(對算法運行時間的估計)?! ‰S著計算機速度的不斷增加和功能的日益強大,人們對有效編程和算法分析的要求也不斷增長。本書把算法分析與最有效率的Java程序的開發(fā)有機地結(jié)合起來,深入分析每種算法,內(nèi)容全面、縝密嚴(yán)格,并細(xì)致講解精心構(gòu)造程序的方法。

作者簡介

Mark Allen Weiss擁有普林斯頓大學(xué)計算機科學(xué)博士學(xué)位,現(xiàn)在是佛羅里達國際大學(xué)計算機學(xué)院教授。他是著名的計算機教育專家,在數(shù)據(jù)結(jié)構(gòu)與算法分析方面卓有建樹,著有多部暢銷書籍,其中包括:《Data Structures and Problem Solvin9:Using Java》、《Data Structures an

書籍目錄

出版者的話?譯者序?前言??第1章 引論 1.1 本書討論的內(nèi)容 1.2 數(shù)學(xué)知識復(fù)習(xí)  1.2.1 指數(shù)  1.2.2 對數(shù)  1.2.3 級數(shù)  1.2.4 模運算  1.2.5 證明的方法 1.3 遞歸簡論 1.4 實現(xiàn)泛型特性構(gòu)件pre-Java5?  1.4.1 使用Object表示泛型  1.4.2 基本類型的包裝  1.4.3 使用接口類型表示泛型  1.4.4 數(shù)組類型的兼容性 1.5 利用Java5泛性實現(xiàn)泛型特性成分  1.5.1 簡單的泛型類和接口?  1.5.2 自動裝箱/拆箱  1.5.3 帶有限制的通配符  1.5.4 泛型static方法  1.5.5 類型限界  1.5.6 類型擦除  1.5.7 對于泛型的限制  1.6 函數(shù)對象 小結(jié) 練習(xí) 參考文獻第2章 算法分析 2.1 數(shù)學(xué)基礎(chǔ) 2.2 模型 2.3 要分析的問題 2.4 運行時間計算  2.4.1 一個簡單的例子  2.4.2 一般法則  2.4.3 最大子序列和問題的求解  2.4.4 運行時間中的對數(shù)  2.4.5 檢驗?zāi)愕姆治觥 ?.4.6 分析結(jié)果的準(zhǔn)確性 小結(jié) 練習(xí) 參考文獻第3章 表、棧和隊列 3.1 抽象數(shù)據(jù)類型 3.2 表ADT  3.2.1 表的簡單數(shù)組實現(xiàn)  3.2.2 簡單鏈表 3.3 JavaCollectionsAPI中的表  3.3.1 Collection接口  3.3.2 Iterator接口  3.3.3 List接口、ArrayList類和?LinkedList類  3.3.4 例:remove方法對LinkedList?類的使用  3.3.5 關(guān)于ListIterator接口 3.4 ArrayList類的實現(xiàn)  3.4.1 基本類  3.4.2 迭代器、Java嵌套類和?內(nèi)部類 3.5 LinkedList類的實現(xiàn) 3.6 棧ADT  3.6.1 棧模型  3.6.2 棧的實現(xiàn)  3.6.3 應(yīng)用 3.7 隊列ADT  3.7.1 隊列模型  3.7.2 隊列的數(shù)組實現(xiàn)  3.7.3 隊列的應(yīng)用 小結(jié) 練習(xí)第4章 樹 4.1 預(yù)備知識  4.1.1 樹的實現(xiàn)  4.1.2 樹的遍歷及應(yīng)用 4.2 二叉樹  4.2.1 實現(xiàn)  4.2.2 例子:表達式樹 4.3 查找樹ADT——二叉查找樹?  4.3.1 contains方法  4.3.2 findMin方法和findMax方法  4.3.3 insert方法  4.3.4 remove方法  4.3.5 平均情況分析 4.4 AVL樹  4.4.1 單旋轉(zhuǎn)  4.4.2 雙旋轉(zhuǎn) 4.5 伸展樹  4.5.1 一個簡單的想法(不能直接使用)  4.5.2 展開 4.6 樹的遍歷 4.7 B樹 4.8 標(biāo)準(zhǔn)庫中的集合與映射  4.8.1 關(guān)于Set接口  4.8.2 關(guān)于Map接口  4.8.3 TreeSet類和TreeMap類的實現(xiàn) ?4.8.4 使用多個映射的例 小結(jié) 練習(xí) 參考文獻第5章 散列 5.1 一般想法 5.2 散列函數(shù) 5.3 分離鏈接法 5.4 不用鏈表的散列表  5.4.1 線性探測法  5.4.2 平方探測法  5.4.3 雙散列 5.5 再散列 5.6 標(biāo)準(zhǔn)庫中的散列表 5.7 可擴散列 小結(jié) 練習(xí) 參考文獻第6章 優(yōu)先隊列(堆) 6.1 模型 6.2 一些簡單的實現(xiàn) 6.3 二叉堆  6.3.1 結(jié)構(gòu)性質(zhì)  6.3.2 堆序性質(zhì)  6.3.3 基本的堆操作  6.3.4 其他的堆操作 6.4 優(yōu)先隊列的應(yīng)用  6.4.1 選擇問題  6.4.2 事件模擬 6.5 d-堆? 6.6 左式堆  6.6.1 左式堆性質(zhì)  6.6.2 左式堆操作 6.7 斜堆 6.8 二項隊列  6.8.1 二項隊列結(jié)構(gòu)  6.8.2 二項隊列操作  6.8.3 二項隊列的實現(xiàn) 6.9 標(biāo)準(zhǔn)庫中的優(yōu)先隊列 小結(jié) 練習(xí) 參考文獻第7章 排序 7.1 預(yù)備知識 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 小數(shù)組  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 替換選擇 小結(jié) 練習(xí)題 參考文獻第8章 不相交集類 8.1 等價關(guān)系 8.2 動態(tài)等價性問題 8.3 基本數(shù)據(jù)結(jié)構(gòu) 8.4 靈巧求并算法 8.5 路徑壓縮 8.6 路徑壓縮和按秩求并的最壞情形 8.7 一個應(yīng)用 小結(jié) 練習(xí)題 參考文獻第9章 圖論算法 9.1 若干定義 9.2 拓?fù)渑判颉?.3 最短路徑算法  9.3.1 無權(quán)最短路徑  9.3.2 Dijkstra算法  9.3.3 具有負(fù)邊值的圖  9.3.4 無圈圖  9.3.5 所有點對最短路徑  9.3.6 最短路徑的例子 9.4 網(wǎng)絡(luò)流問題 9.5 最小生成樹  9.5.1 Prim算法  9.5.2 Kruskal算法 9.6 深度優(yōu)先搜索的應(yīng)用  9.6.1 無向圖  9.6.2 雙連通性  9.6.3 歐拉回路  9.6.4 有向圖  9.6.5 查找強分支 9.7 NP完全性介紹  9.7.1 難與易  9.7.2 NP類  9.7.3 NP完全問題 小結(jié) 練習(xí) 參考文獻第10章 算法設(shè)計技巧 10.1 貪婪算法  10.1.1 一個簡單的調(diào)度問題  10.1.2 哈夫曼編碼  10.1.3 近似裝箱問題 10.2 分治算法  10.2.1 分治算法的運行時間  10.2.2 最近點問題  10.2.3 選擇問題  10.2.4 一些算術(shù)問題的理論改進 10.3 動態(tài)規(guī)劃  10.3.1 用一個表代替遞歸  10.3.2 矩陣乘法的順序安排  10.3.3 最優(yōu)二叉查找樹  10.3.4 所有點對最短路徑 10.4 隨機化算法  10.4.1 隨機數(shù)發(fā)生器  10.4.2 跳躍表  10.4.3 素性測試 10.5 回溯算法  10.5.1 收費公路重建問題  10.5.2 博弈 小結(jié) 練習(xí) 參考文獻第11章 攤還分析 11.1 一個無關(guān)的智力問題 11.2 二項隊列 11.3 斜堆 11.4 斐波那契堆  11.4.1 切除左式堆中的節(jié)點  11.4.2 二項隊列的懶惰合并  11.4.3 斐波那契堆操作  11.4.4 時間界的證明 11.5 伸展樹 小結(jié) 練習(xí) 參考文獻第12章 高級數(shù)據(jù)結(jié)構(gòu)及其實現(xiàn) 12.1 自頂向下伸展樹 12.2 紅黑樹  12.2.1 自底向上的插入  12.2.2 自頂向下紅黑樹  12.2.3 自頂向下的刪除 12.3 確定性跳躍表 12.4 AA樹 12.5 treap樹 12.6 kd樹? 12.7 配對堆 小結(jié) 練習(xí) 參考文獻索引

章節(jié)摘錄

第1章 引論在這一章,我們闡述本書的目的和目標(biāo)并簡要復(fù)習(xí)離散數(shù)學(xué)以及程序設(shè)計的一些概念。我們將要看到程序?qū)τ诤侠淼拇罅枯斎氲倪\行性能與其在適量輸入下運行性能的同等重要性。概括為本書其余部分所需要的基本的數(shù)學(xué)基礎(chǔ)。簡要復(fù)習(xí)遞歸。概括用于本書的Java語言的某些重要特點。1.1本書討論的內(nèi)容設(shè)有一組N個數(shù)而要確定其中第k個最大者。我們稱之為選擇問題(selectionproblem)。大多數(shù)學(xué)習(xí)過一兩門程序設(shè)計課程的學(xué)生寫一個解決這種問題的程序不會有什么困難?!懊黠@的”解決方法是相當(dāng)多的。該問題的一種解法就是將這N個數(shù)讀進一個數(shù)組中,再通過某種簡單的算法,比如冒泡排序法,以遞減順序?qū)?shù)組排序,然后返回位置k上的元素。稍微好一點的算法可以先把前k個元素讀人數(shù)組并(以遞減的順序)對其排序。接著,將剩下的元素再逐個讀入。當(dāng)新元素被讀到時,如果它小于數(shù)組中的第k個元素則忽略之,否則就將其放到數(shù)組中正確的位置上,同時將數(shù)組中的一個元素擠出數(shù)組。當(dāng)算法終止時,位于第k個位置上的元素作為答案返回。這兩種算法編碼都很簡單,建議讀者試一試。此時我們自然要問:哪個算法更好?哪個算法更重要?還是兩個算法都足夠好?使用一千萬個元素的隨機文件和k=5000000進行模擬將發(fā)現(xiàn),兩個算法在合理的時間量內(nèi)均不能結(jié)束;每種算法都需要計算機處理若干天才能算完(雖然最后還是給出了正確的答案)。在第7章將討論另一種算法,該算法將在一秒鐘左右給出問題的解。因此,雖然我們提出的兩個算法都能算出結(jié)果,但是它們不能被認(rèn)為是好的算法,因為對于第三種算法能夠在合理的時間內(nèi)處理的輸入數(shù)據(jù)量而言,這兩種算法是完全不切實際的。第二個問題是解決一個流行的字謎。輸人是由一些字母構(gòu)成的一個二維數(shù)組以及一組單詞組成。目標(biāo)是要找出字謎中的單詞,這些單詞可能是水平、垂直或沿對角線上任何方向放置的。

編輯推薦

《數(shù)據(jù)結(jié)構(gòu)與算法分析:Java語言描述(第2版)》的特色如下:全面闡述新的Java 5.0編程語言和Java Collections庫。改進內(nèi)部設(shè)計,用圖和實例闡述算法的實施步驟。第3章對表、棧和隊列的討論進行了全面修訂。用一章專門討論攤還分析和一些高級數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)。每章末尾的大量練習(xí)按照難易程度編排,以增強對關(guān)鍵概念的理解。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    數(shù)據(jù)結(jié)構(gòu)與算法分析 PDF格式下載


用戶評論 (總計132條)

 
 

  •   不錯,個人覺得適合學(xué)完數(shù)據(jù)結(jié)構(gòu)后想深入看些算法的時候用,書不厚,不算是算法分析專用的書。還有,學(xué)完java基礎(chǔ),那這個去練習(xí)下也不錯。畢竟現(xiàn)在C語言實際應(yīng)用沒有java多,這個可能看完更有些實際意義。但是不適合初學(xué),有些基礎(chǔ)的東西沒有細(xì)講。
  •   為數(shù)不多的Java語言版本的數(shù)據(jù)結(jié)構(gòu)和算法分析的書籍,令從事java的技術(shù)人員可以進行理論性的提高和深入學(xué)習(xí)
  •   數(shù)據(jù)結(jié)構(gòu)和算法是程序員的必修課,以前只看過c語言版的?,F(xiàn)在從事java開發(fā),雖然具體語言都沒關(guān)系,但是能看到j(luò)ava版本的更親切!
  •   基于Java語言對數(shù)據(jù)結(jié)構(gòu)和算法描述。。。是難得一見的經(jīng)典書籍
  •   書中例子針對java語言特征給出了很詳細(xì)的結(jié)構(gòu)定義和算法為嗎,值得好好研究?;局R點講解相當(dāng)透徹,算法的思路也非常清晰,數(shù)據(jù)結(jié)構(gòu)的定義是考究過的,值得大家借鑒
  •   書比較深,對數(shù)學(xué)基礎(chǔ)也有所要求,對java語言描述的結(jié)構(gòu),算法 很清晰,雖然有點難,但是還是比較好學(xué),也有助于理解這些知識。
  •   數(shù)據(jù)結(jié)構(gòu)和算法分析很好的一本書,很實用
  •   這本書我買過三次,但是都沒有看完,說明:我深知數(shù)據(jù)結(jié)構(gòu)與算法分析之重要,但是從來沒有認(rèn)真學(xué)習(xí)過。這次一定要認(rèn)真讀完。
  •   剛拿到這本書,才看了很少,但是感覺很好,這是一本很好的java算法書
  •   講解十分到位,很不錯的數(shù)據(jù)結(jié)構(gòu)和算法書
  •   用Java寫的算法,書中的寫有很有深度,需要有一定的數(shù)學(xué)基礎(chǔ)的同學(xué)來看,好好學(xué)習(xí)一下。才能學(xué)到東西,靜心去閱讀,去思考。
  •   此書過于抽象,適合邏輯鍛煉,因為Java里面有集合來實現(xiàn)數(shù)據(jù)結(jié)構(gòu)里面類似隊列、鏈表的類,故只適合鍛煉邏輯思維。
  •   很好的書,對java中的數(shù)據(jù)結(jié)構(gòu)有很好的講述,值得認(rèn)真思考研究。
  •   想學(xué)數(shù)據(jù)結(jié)構(gòu),又是學(xué)java的,這書還是很不錯的
  •   拿到書剛看了一小部分,感覺講的還挺不錯的,對于每個問題可能的多種算法分析比較,在比較中體會到各種算法的優(yōu)劣。
  •   這本書寫的非常好,內(nèi)容很詳細(xì),算法寫的也很有邏輯!有一定難度,值得研究!
  •   我兩周內(nèi)第二次買書,第一次是買了本講虛擬機內(nèi)核的,國人所寫,折后46塊2,真的很失望,書本來就薄,字體碩大,圖片很多,字間距也很大,整本書很空洞,后來決定買的這本,對于熱愛算法的人來說這本真的很好,不過要有一定的數(shù)學(xué)功底和毅力,否則不推薦購買
  •   最近想學(xué)習(xí)算法,買了這本書感覺不錯!
  •   很好的一本書,編程要想往高了走,深了走。數(shù)據(jù)結(jié)構(gòu)是必須弄明白的
  •   書挺好的,值得一讀。與算法導(dǎo)論比起來,主要看重它的薄
  •   非常好的算法書。
  •   講了很多有用的算法。
  •   很好很實用,適合對c語言版的數(shù)據(jù)結(jié)構(gòu)不習(xí)慣或者不喜歡的人員閱讀
  •   非常詳細(xì)的內(nèi)容描述,說明及指導(dǎo)。
    對菜鳥級別的同學(xué)也非常適用,而工作一段時間的IT同志們也一定要好好看看,從基本的java內(nèi)容到高端的插件編輯,都非常的清晰明了。
    推薦大家閱讀,非常有價值!
  •   適合有一定高等數(shù)學(xué)和數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)的朋友看,不然看了一章以后會很難繼續(xù)下去,知識比較晦澀,需專研
  •   很不錯的一本書,而且是java版的~講得也很詳細(xì)和清楚
  •   跟淘寶相比,我第一次感覺到了神速的發(fā)貨,我這個第二次到當(dāng)當(dāng)來買東西,距離上一次已經(jīng)很久了。這次到這里來買了Java的書,發(fā)貨速度真的很快,書也很完整,包裝蠻好的。
  •   好書,java版
  •   之前看了一下這本書的電子版,覺的還不錯,就買了紙質(zhì)版看看....應(yīng)該對學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)有很大幫助!
  •   java開發(fā)人員進修之書
  •   這本書的內(nèi)容很詳細(xì),對于學(xué)java的我們來說是本很不錯的選擇。內(nèi)容面面俱到,而且很有啟發(fā)性。值得去鉆讀研讀。是本很不錯的書
  •   非常有深度的數(shù)據(jù)結(jié)構(gòu)方面的書籍。
  •   java必備書籍之一,好書
  •   剛開始看java,有些還不懂,同學(xué)推薦的。
  •   建議有一定Java基礎(chǔ)的來閱讀。
  •   沒有一定Java基礎(chǔ)的看著可能有些吃力
  •   書不錯,就是還沒學(xué)java,要先自學(xué)
  •   我很喜歡!建議java的學(xué)習(xí)者去看看!
  •   沒咋看呢 不血java了
  •   一本java的精華所在啊?。?!
  •   替別人買的,想學(xué)數(shù)據(jù)結(jié)構(gòu),聽老師話的孩子!
  •   之前看過作者的一本C++的數(shù)據(jù)結(jié)構(gòu),為作者的獨到見解所折服。國內(nèi)很少有這樣把深刻知識講的通俗易懂的書。
  •   數(shù)據(jù)結(jié)構(gòu)啊數(shù)據(jù)結(jié)構(gòu)
  •   比C語言的容易懂一些,也容易編程實踐
  •   世界計算機大師之作 必須收藏和學(xué)習(xí)
  •   講的很細(xì)致,可能因為是翻譯版的緣故吧,感覺里面很多句子讀起來很別扭,希望能改進。
  •   這是一本經(jīng)典的書,可是第一章我都看不懂,腫么辦!!
  •   很好的一本書,程序猿必看
  •   這本書寫的不好,只看了一章左右就沒看下邊的了
  •   對程序的優(yōu)化很有幫助
  •   雖然翻譯上不哼滿意,但是對寫程序還是很有用的。
  •   最近還沒用抽出時間看呢,不過大致看了一下書是挺不錯的。發(fā)貨速度也挺快的
  •   對于初學(xué)者這個很難理解!不過內(nèi)容不錯~
  •   發(fā)貨速度快,這本書很實用,非常適合。
  •   書很不錯,內(nèi)容和材質(zhì)都很好,就是這本書有點難度了,買之前沒太注意這方面,現(xiàn)在看起來很費力、
  •   發(fā)貨速度好快,謝謝。先看看內(nèi)容再評書內(nèi)容
  •   不愧是國外的教材,清晰透徹,翻譯的還可以吧
  •   還行,好像是給大學(xué)作為教材的.
  •   很經(jīng)典的教材,內(nèi)容豐富只是習(xí)題沒有答案
  •   到貨速度很快、準(zhǔn)備學(xué)習(xí)。
  •   書的質(zhì)量很好 送貨速度很快
  •   書很好,剛拿到,物流速度很快
  •   還沒開始看,一次買太多了,不過速度和質(zhì)量很給力
  •   質(zhì)量很好,發(fā)貨速度也很快,不錯
  •   超贊的一本書,不過有點小難
  •   很強大的工具書,比對了這么多種類的書,還是這本最好
  •   內(nèi)容范圍廣,講解詳細(xì),只是習(xí)題沒答案
  •   非常經(jīng)典的一本書,果然是大師級水平
  •   上學(xué)的時候看過,看不懂。現(xiàn)在準(zhǔn)備再看一遍
  •   看了下 挺難的 慢慢看
  •   此書看著有點難
  •   好難~買了倆月還沒看~書不錯~
  •   剛剛收到,書很新。翻了幾頁,內(nèi)容很有深度,需要認(rèn)真看。。。
  •   喜歡看外國人寫的書,覺得此書應(yīng)該不錯,就是翻譯的不是很順暢,需要自己多理解
  •   都說翻譯不好,我覺得翻譯的不錯,特別地方還有英文注釋,可以幫助理解
  •   這本書,不錯喔,很給力,內(nèi)容很有用
  •   很經(jīng)典的書,值得看!,推薦給大家
  •   經(jīng)典的書,要好好讀
  •   很不錯的書,是正品,經(jīng)典
  •   講的挺不錯,再結(jié)合嚴(yán)蔚敏的看看
  •   很好的書,制定教材啊
  •   這本書很不錯,正版,運送也很快
  •   很滿意比起在當(dāng)當(dāng)買的上一本書,這本比較好!
  •   這本書確實寫得不錯,講的很詳細(xì)
  •   希望當(dāng)當(dāng)能多多豐富圖書的種類 不過這本書不錯啦
  •   幾本書都不錯,發(fā)貨也還算及時
  •   這本書寫的怎么樣還沒有具體看呢 應(yīng)該不錯吧
  •   挺不錯的一本書,物有所值啊
  •   很不錯的一本書,適合入門小程
  •   誰有這本書的習(xí)題答案?。ㄖ形陌姹荆?/li>
  •   這本書早就想買了,買了發(fā)現(xiàn)不錯
  •   本人以為這本書很好,但是仔細(xì)看了一個多鐘,看得我想睡覺,難度不是一般的大呀!本想靠這本書打好基礎(chǔ)呢!但是~~~哎!
  •   內(nèi)容很好,紙張也不錯。很喜歡。贊一個
  •   抱歉,評價晚了,內(nèi)容不錯
  •   內(nèi)容還沒看,不過紙質(zhì)還可以
  •   里面內(nèi)容還過得去
  •   內(nèi)容比較深奧,不適合新手入門......
  •   書的內(nèi)容非常不錯,建議購買
  •   書很好、內(nèi)容詳細(xì)
  •   已經(jīng)收到了,書不算厚,內(nèi)容有點深,快遞有些慢
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7