注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)科學(xué)理論與基礎(chǔ)知識(shí)計(jì)算機(jī)算法:設(shè)計(jì)與分析導(dǎo)論 英文版

計(jì)算機(jī)算法:設(shè)計(jì)與分析導(dǎo)論 英文版

計(jì)算機(jī)算法:設(shè)計(jì)與分析導(dǎo)論 英文版

定 價(jià):¥39.50

作 者: (美)Sara Baase,Allen Van Gelder著
出版社: 高等教育出版社
叢編項(xiàng): 國(guó)外優(yōu)秀信息科學(xué)與技術(shù)系列教學(xué)用書
標(biāo) 簽: 程序語(yǔ)言與軟件開發(fā) 計(jì)算機(jī)數(shù)學(xué) 計(jì)算機(jī)科學(xué)理論 計(jì)算機(jī)與互聯(lián)網(wǎng)

ISBN: 9787040100488 出版時(shí)間: 2001-01-01 包裝: 平裝
開本: 24cm 頁(yè)數(shù): 688 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書的主要內(nèi)容包括三部分,一是介紹了如何用算法解決在計(jì)算機(jī)應(yīng)用中經(jīng)常出現(xiàn)的現(xiàn)實(shí)問(wèn)題,二是介紹了計(jì)算復(fù)雜性的基本原理與技術(shù),最后講解了NP-完備性問(wèn)題及并行算法。本書強(qiáng)調(diào)算法設(shè)計(jì)技術(shù),對(duì)每一個(gè)問(wèn)題,首先討論多個(gè)解決方法,然后設(shè)計(jì)、分析、修改或放棄某一算法,通過(guò)不斷的深入研究,直到最后得到滿意的結(jié)果。因此本書作者希望讀者閱讀此書,逐步培養(yǎng)形成一種新的分析問(wèn)題的思維方式。本書在第二版的基礎(chǔ)上,增加了三章新內(nèi)容以及許多新的主題,同時(shí)對(duì)原有章節(jié)也做了重新調(diào)整。本版次還新增了100多道習(xí)題和Java實(shí)例,書中的所有程序均以Java偽碼形式給出。內(nèi)容:1. 算法分析原理 2. 數(shù)據(jù)抽象與基本數(shù)據(jù)結(jié)構(gòu) 3. 遞歸與歸納 4. 分類 5. 選擇 6. 動(dòng)態(tài)集合與查找 7. 圖與圖的遍歷 8. 圖的優(yōu)化問(wèn)題與貪心算法 9. 傳遞閉包 10. 動(dòng)態(tài)編程 11. 字符串匹配 12. 多項(xiàng)式與矩陣 13. NP-完備性問(wèn)題 14. 并行算法 附錄 Java實(shí)例與技術(shù)

作者簡(jiǎn)介

  Sara Baase is professor of computer Science at San Diego University and has been teaching CS for 25years.Dr.Baase is a three-time recipient of the San State University Alumni Associations Outsatanding Faculty Award,adn she has written a number of textbooks in the areas of algorithms,assembly language,and social and ethical issues relate to computing.She earned her doctorate at the University of California,Berkeley.Allen Van Celder is professor of computer Science at the University of California at Santa Cruz,where he has been teaching CS for 12 years.He received his Ph.D.in Computer Science at Stanford University and is a past recipient of the Presidential Young Investigator Award.

圖書目錄

Contents
Preface vii
1 Analyzing Algorithms and Problems: Principles and Examples 1
1.1 Introduction 2
1.2 Java as an Algorithm Language 3
1.3 Mathematical Background 11
1.4 Analyzing Algorithms and Problems 30
1.5 Classifying Functions by Their Asymptotic Growth Rates 43
1.6 Searching an Ordered Array 53
  Exercises 61
  Notes and References 67
2 Data Abstraction and Basic Data Structures 69
2.1 Introduction 70
2.2 ADT Specification and Design Techniques 71
2.3 Elementary ADTs--Lists and Trees 73
2.4 Stacks and Queues 86
2.5 ADTs for Dynamic Sets 89
  Exercises 95
  Notes and References 100
3 Recursion and induction 101
3.1 introduction 102
3.2 Recursive Procedures 102
3.3 What is a Proof? 108
3.4 Induction Proofs 111
3.5 Proving Correctness of Procedures 1 18
3.6 Recurrence Equations 130
3.7 Recursion Trees 134
  Exercises 141
  Notes and References 146
4 Sorting 149
4.1 Introduction 150
4.2 Insertion Sort 151
4.3 Divide and Conquer 157
4.4 Quicksort 159
4.5 Merging Sorted Sequences 171
4.6 Mergesort 174
4.7 Lower Bounds for Sorting by Comparison of Keys 178
4.8 Heapsort 182
4.9 Comparison of Four Sorting Algorithms 197
4.10 Shellsort 197
4.11 Radix Sorting 201
  Exercises 206
  Programs 221
  Notes and References 221
5 Selection and Adversary Arguments 223
5.1 Introduction 224
5.2 Finding max and min 226
5.3 Finding the Second-Largest Key 229
5.4 The Selection Problem 233
5.5 A Lower Bound for Finding the Median 238
5.6 Designing Against an Adversary 240
  Exercises 242
  Notes and References 246
6 Dynamic Sets and Searching 249
6.1 Introduction 250
6.2 Array Doubling 250
6.3 Amortized Time Analysis 251
6.4 Red-Black Trees 253
6.5 Hashing 275
6.6 Dynamic Equivalence Relations and Union-Find Programs 283
6.7 Priority Queues with a Decrease Key Operation 295
  Exercises 302
  Programs 309
  Notes and References 309
7 Graphs and Graph Traversals 313
7.1 Introduction 314
7.2 Definitions and Representations 314
7.3 Traversing Graphs 328
7.4 Depth-First Search on Directed Graphs 336
7.5 Strongly Connected Components of a Directed Graph 357
7.6 Depth-First Search on Undirected Graphs 364
7.7 Biconnected Components of an Undirected Graph 366
  Exercises 375
  Programs 384
  Notes and References 385
8 Graph Optimization Problems and Greedy Algorithms 387
8.1 Introduction 388
8.2 Prim's Minimum Spanning Tree Algorithm 388
8.3 Single-Source Shortest Paths 403
8.4 Kruskal's Minimum Spanning Tree Algorithm 412
  Exercises 416
  Programs 421
  Notes and References 422
9 Transitive Closure, All-Pairs Shortest Paths 425
9.1 Introduction 426
9.2 The Transitive Closure of a Binary Relation 426
9.3 Warshall's Algorithm for Transitive Closure 430
9.4 All-Pairs Shortest Paths in Graphs 433
9.5 Computing Transitive Closure by Matrix Operations 436
9.6 Multiplying Bit Matrices-Kronrod's Algorithm 439
  Exercises 446
  Programs 449
  Notes and References 449
10 Dynamic Programming 451
10.1 Introduction 452
10.2 Subproblem Graphs and Their Traversal 453
10.3 Multiplying a Sequence of Matrices 457
10.4 Constructing Optimal Binary Search Trees 466
10.5 Separating Sequences of Words into Lines 471
10.6 Developing a Dynamic Programming Algorithm 474
  Exercises 475
  Programs 481
  Notes and References 482
11 String Matching 483
11.1 Introduction 484
11.2 A Straightforward Solution 485
11.3 The Knuth-Moms-Pratt Algorithm 487
11.4 The Boyer-Moors Algorithm 495
11.5 Approximate String Matching 504
  Exercises 508
  Programs 512
  Notes and References 512
12 Polynomials and Matrices 515
12.1 Introduction 516
12.2 Evaluating Polynomial Functions 516
12.3 Vector and Matrix Multiplication 522
12.4 The Fast Fourier Transform and Convolution 528
  Exercises 542
  Programs 546
  Notes and References 546
13 NP-Complete Problems 547
13.1 Introduction 548
13.2 T and ac 548
13.3 NP-Complete Problems 559
13.4 Approximation Algorithms 570
13.5 Bin Packing 572
13.6 The Knapsack and Subset Sum Problems 577
13.7 Graph Coloring 581
13.8 The Traveling Salesperson Problem 589
13.9 Computing with DNA 592
  Exercises 600
  Notes and References 608
14 Parallel Algorithms 611
14.1 Introduction 612
14.2 Parallelism, the PRAM, and Other Models 612
14.3 Some Simple PRAM Algorithms 616
14.4 Handling Write Conflicts 622
14.5 Merging and Sorting 624
14.6 Finding Connected Components 628
14.7 A Lower Bound for Adding n Integers 641
  Exercises 643
  Notes and References 647
A Java Examples and Techniques 649
A.1 introduction 650
A.2 A Java Main Program 651
A.3 A Simple input Library 656
A.4 Documenting Java Classes 658
A.5 Generic Order and the "Comparable" Interface 659
A.6 Subclasses Extend the Capability of Their Superclass 663
A.7 Copy via the "Cloneable" Interface 667
Bibliography  669
Index  679

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)