Java程式設計:一種跨學科的方法

Java程式設計:一種跨學科的方法

《Java程式設計:一種跨學科的方法》是2009年清華大學出版社出版的圖書,作者是賽德維克、 韋恩。

內容簡介

《Java程式設計:一種跨學科的方法》由計算機著名專家Robert Sedgewick編寫。本書根據學習編程的四個階段(基本元素、函式、面向對象程式設計、算法和數據結構)來組織。基本元素包括變數、賦值語句、數據的內置類型、控制流(條件和循環)、數組和輸入輸出、包括圖和聲音。函式包括庫函式和遞歸函式,將程式劃分成可以獨立調試、維護和復用的程式段。然後介紹如何使用、創建和設計數據類型。最後介紹了經典的排序和搜尋算法,同時也介紹了基本的數據結構(包括堆疊、佇列和符號表)及它們的套用,強調了使用科學方法來理解實現的性能特性。本書示例豐富,涉及了Java在各種學科之中的套用,具有很高的參考價值。
本書適用於高等院校計算機及相關專業的研究生和本科生,以及從事編程工作的專業人員。

本書示例豐富,涉及了Java在各種學科之中的套用,具有很高的參考價值。

本書適用於高等院校計算機及相關專業的研究生和本科生,以及從事編程工作的專業人員。

作者簡介

Robert Sedgewick,普林斯頓大學計算機科學系教授,在美國史丹福大學獲得博士學位,師從算法與程式設計大師Donald E. Knuth教授。他所著作的《算法》系列書在計算機界有著舉足輕重的影響力。

編輯推薦

《Java程式設計:一種跨學科的方法》按學習編程的四個階段來組織本書。

示例豐富,涉及了Java在各種學科之中的套用,具有很高的參考價值。

內容齊備的配套網址,編碼示例、附加練習等內容可以從書內提示網站下載。

目錄

第1章程式設計的元素1

1.1第一個程式1

1.1.1Java程式設計2

1.1.2輸入與輸出5

問題與回答(Q&A)6

練習8

1.2內置數據類型8

1.2.1定義9

1.2.2字元和字元串12

1.2.3整數14

1.2.4浮點數16

1.2.5布爾型17

1.2.6比較18

1.2.7庫方法和API20

1.2.8類型轉換22

小結24

問題與回答(Q&A)25

練習27

創新練習29

1.3條件與循環31

1.3.1if語句32

1.3.2while循環34

1.3.3for循環38

1.3.4嵌套40

1.3.5套用42

1.3.6其他條件和循環結構49

1.3.7死循環51

小結52

問題與回答(Q&A)53Java程式設計--一種跨學科的方法目錄練習55

創新練習58

1.4數組61

1.4.1在Java中的數組61

1.4.2優惠券收購69

1.4.3Eratosthenes的素數篩選71

1.4.4二維數組73

1.4.5示例:自迴避隨機行走77

小結80

問題與回答(Q&A)80

練習81

創新練習83

1.5輸入與輸出86

1.5.1鳥瞰功能86

1.5.2標準輸出88

1.5.3標準輸入90

1.5.4重定向和管道94

1.5.5標準圖畫97

1.5.6標準音頻105

問題與回答(Q&A)109

練習110

創新練習113

1.6案例研究:隨機Web衝浪115

1.6.1輸入格式116

1.6.2過渡矩陣116

1.6.3模擬117

1.6.4混合馬爾可夫鏈121

1.6.5經驗125

練習126

創新練習127

第2章函式與模組129

2.1靜態方法129

2.1.1使用和定義靜態方法130

2.1.2靜態方法的屬性133

2.1.3實現數學函式137

2.1.4使用靜態方法組織代碼139

2.1.5用數組實現靜態方法140

2.1.6示例:聲波的疊加143

問題與回答(Q&A)147

練習148

創新練習150

2.2庫和客戶端153

2.2.1使用在其他程式中的靜態方法154

2.2.2庫156

2.2.3隨機數158

2.2.4數組的輸入和輸出161

2.2.5疊代函式系163

2.2.6標準統計167

2.2.7模組化程式設計172

問題與回答(Q&A)174

練習175

創新練習177

2.3遞歸179

2.3.1第一個遞歸程式179

2.3.2數學歸納法181

2.3.3歐幾里得算法183

2.3.4漢諾塔183

2.3.5函式調用樹185

2.3.6指數時間186

2.3.7格雷碼187

2.3.8遞歸圖形189

2.3.9布朗橋191

2.3.10遞歸易犯的錯誤193

2.3.11觀點195

問題與回答(Q&A)195

練習196

創新練習197

2.4案例研究:滲濾200

2.4.1滲濾201

2.4.2基本支架202

2.4.3垂直滲濾204

2.4.4測試205

2.4.5估計機率208

2.4.6滲濾的遞歸解決方案209

2.4.7自適應畫圖211

2.4.8經驗215

問題與回答(Q&A)216

練習217

創新練習218

第3章面向對象程式設計221

3.1數據類型221

3.1.1基本定義222

3.1.2顏色227

3.1.3數字圖像處理231

3.1.4字元串處理238

3.1.5字元串處理套用:基因組學241

3.1.6輸入和輸出修訂243

3.1.7引用類型屬性249

問題與回答(Q&A)254

練習256

創新練習258

3.2創建數據類型262

3.2.1數據類型的基本元素262

3.2.2秒表266

3.2.3直方圖268

3.2.4海龜作圖270

3.2.5複數275

3.2.6Mandelbrot集279

3.2.7商務數據處理282

問題與回答(Q&A)285

練習287

創新練習290

3.3設計數據類型294

3.3.1設計API294

3.3.2封裝296

3.3.3不變性301

3.3.4示例:空間向量303

3.3.5繼承306

3.3.6套用:數據挖掘310

3.3.7契約式設計315

問題與回答(Q&A)316

練習318

數據類型設計練習319

創新練習320

3.4案例研究:N體模擬321

3.4.1N體模擬322

問題與回答(Q&A)328

練習329

創新練習329

第4章算法與數據結構331

4.1性能331

4.1.1觀測332

4.1.2假說334

4.1.3增長階分類338

4.1.4預測340

4.1.5防止誤解的說明342

4.1.6性能保證343

4.1.7記憶體344

4.1.8觀點348

問題與回答(Q&A)349

練習351

創新練習355

4.2排序與搜尋357

4.2.1二分查找358

4.2.2插入排序364

4.2.3歸併排序370

4.2.4套用:頻率計數374

4.2.5套用:最長的重複子串377

4.2.6經驗381

問題與回答(Q&A)382

練習383

創新練習384

4.3堆疊與佇列386

4.3.1後進先出棧387

4.3.2數組實現388

4.3.3鍊表390

4.3.4參數化數據類型398

4.3.5堆疊的套用402

4.3.6FIFO佇列405

4.3.7佇列套用411

4.3.8可疊代的集合413

4.3.9資源分配416

問題與回答(Q&A)419

練習421

鍊表練習423

創新練習424

4.4符號表428

4.4.1API428

4.4.2符號表客戶端430

4.4.3符號表實現435

4.4.4二叉搜尋樹436

4.4.5BST的性能特性440

4.4.6BST樹遍歷443

4.4.7擴展符號表操作445

4.4.8集合數據類型446

4.4.9觀點447

問題與回答(Q&A)448

練習448

二叉樹練習450

創新練習451

4.5案例研究:小世界456

4.5.1圖456

4.5.2圖數據類型459

4.5.3圖客戶端示例462

4.5.4圖的最短路徑465

4.5.5小世界圖473

4.5.6經驗478

問題與回答(Q&A)480

練習481

創新練習483

後記487

相關詞條

相關搜尋

熱門詞條

聯絡我們