Think Data Structures|Java演算法實作和資料檢索

Book description

“一本極好又務實的資料結構入門書籍,讓讀者擁有剛好的理論知識以進行演算法分析,同時兼顧實際應用。”
-Barry Wittman
Associate Professor
Elizabethtown  College

“經由閱讀本書,讀者進入Java collection framework的世界,使用Ant和JUnit,並建立一個有趣的網路搜尋引擎雛型,繼Think Java之後又一力作!”
-Chris Mayfield
Associate Professor
James Madison University

如果你是在學學生,或是準備要應徵軟體工程師的話,本書較其它同類型的書籍更清楚、簡明和深入,幫助你學習或複習,軟體工程中資料結構和演算法的一些重點。

藉由闡明理論架構之上的實用知識和技巧,作者Allen Downey呈現給你的是如何用資料結構,實作有效率的演算法,以及分析測量演算法的效率。你會用到很多Java collection framework(JCF)裡的重要類別,知道這些類別是如何被實作以及知道它們的執行效能。每一個章節都有實作練習題,還有對應的測試程式檢查讀者練習題解答是否正確。

‧使用像list和map這樣的資料結構,並瞭解其動作原理
‧製作一個可以讀取維基百科網頁、分析網頁內容而且瀏覽產出資料tree
‧分析程式碼以預測程式碼執行效率,以及程式要用多少記憶體
‧為Map介面作數個實作類別,過程中包括使用雜湊表以及二元搜尋樹
‧建立一個簡單的網頁搜尋引擎,引擎包含爬蟲和儲存網頁內容的索引器,以及能將資料回傳給使用者的檢索器

 

Table of contents

  1. 封面
  2. 書名頁
  3. 英文版權頁
  4. 目錄
  5. 前言
  6. 第一章 介面
  7. 為什麼需要兩種List
  8. Java中的Interface
  9. List interface
  10. 練習題一
  11. 第二章 演算法分析
  12. 選擇排序法
  13. Big O
  14. 練習題二
  15. 第三章 ArrayList
  16. 評估MyArrayList方法
  17. 評估add方法
  18. Problem size
  19. 鏈結資料型態
  20. 練習題三
  21. 小聊垃圾回收
  22. 第四章 LinkedList
  23. 評估MyLinkedList的方法
  24. 比較MyArrayList和MyLinkedList
  25. 測量
  26. 結果解讀
  27. 練習題四
  28. 第五章 雙向鏈結串列
  29. 效能測量結果
  30. 測量LinkedList方法
  31. 將元素加到LinkedList的尾端
  32. 雙向鏈結串列
  33. 選擇結構
  34. 第六章 Tree的遍歷
  35. 網頁搜尋
  36. HTML分析
  37. 使用jsoup
  38. 在DOM迭代
  39. 深度優先搜尋
  40. Java中的stack
  41. 迭代版DFS
  42. 第七章 找到Philosophy
  43. 開始
  44. Iterables和Iterators
  45. WikiFetcher
  46. 練習題五
  47. 第八章 Indexer
  48. 選擇資料結構
  49. TermCounter
  50. 練習題六
  51. 第九章 Map介面
  52. 實作MyLinearMap
  53. 練習題七
  54. 分析MyLinearMap
  55. 第十章 雜湊
  56. 雜湊
  57. 雜湊如何運作?
  58. 雜湊與可變物件
  59. 練習題八
  60. 第十一章 HashMap
  61. 練習題九
  62. 分析MyHashMap
  63. 取捨
  64. 評估MyHashMap
  65. 修正MyHashMap
  66. UML類別圖
  67. 第十二章 TreeMap
  68. Hash有什麼問題?
  69. 二元搜尋樹
  70. 練習題十
  71. 實作TreeMap
  72. 第十三章 二元搜尋樹
  73. 一個簡單的MyTreeMap
  74. 找Value
  75. 實作put
  76. 中序尋訪
  77. 對數時間方法
  78. 自我平衡樹
  79. 再一個練習
  80. 第十四章 持久性資料
  81. Redis
  82. Redis Client和Server
  83. 建立相容於Redis的索引
  84. Redis資料型態
  85. 練習題十一
  86. 一些額外的建議
  87. 設計提示
  88. 第十五章 爬行Wikipedia
  89. Redis版索引器
  90. 分析搜尋
  91. 分析索引
  92. 圖形遍歷
  93. 練習題十二
  94. 第十六章 布林搜尋
  95. 爬蟲解答
  96. 資訊檢索
  97. 布林搜尋
  98. 練習題十三
  99. Comparable和Comparator
  100. 額外練習
  101. 第十七章 排序
  102. 插入排序法
  103. 練習題十四
  104. 分析合併排序法
  105. 基數排序法
  106. 堆積排序法
  107. 有限堆積
  108. 空間複雜度
  109. 索引 (1/2)
  110. 索引 (2/2)
  111. 關於作者
  112. 出版記事

Product information

  • Title: Think Data Structures|Java演算法實作和資料檢索
  • Author(s): Allen B. Downey
  • Release date: March 2018
  • Publisher(s): GoTop Information, Inc.
  • ISBN: None