图书介绍

数据结构与算法分析 C语言描述 英文版pdf电子书版本下载

数据结构与算法分析  C语言描述  英文版
  • (美)韦斯著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111312802
  • 出版时间:2010
  • 标注页数:512页
  • 文件大小:101MB
  • 文件页数:529页
  • 主题词:数据结构-英文;算法分析-英文;C语言-程序设计-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

数据结构与算法分析 C语言描述 英文版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1 Introduction l 1

1.1.What's the Book About? 1

1.2.Mathematics Review 3

1.2.1.Exponents 3

1.2.2.Logarithms 3

1.2.3.Series 4

1.2.4.Modular Arithmetic 5

1.2.5.The P Word 6

1.3.A Brief Introduction to Recursion 8

Summary 12

Exercises 12

References 13

2 Algorithm Analysis 15

2.1.Mathematical Background 15

2.2.Model 18

2.3.What to Analyze 18

2.4.Running Time Calculations 20

2.4.1.A Simple Example 21

2.4.2.General Rules 21

2.4.3.Solutions for the Maximum Subsequence Sum Problem 24

2.4.4.Logarithms in the Running Time 28

2.4.5.Checking Your Analysis 33

2.4.6.A Grain of Salt 33

Summary 34

Exercises 35

References 39

3 Lists,Stacks,and Queues 41

3.1.Abstract Data Types(ADTs) 41

3.2.The List ADT 42

3.2.1.Simple Array Implementation of lists 43

3.2.2.Linked Lists 43

3.2.3.Programming Details 44

3.2.4.Common Errors 49

3.2.5.Doubly Linked Lists 51

3.2.6.Circularly Linked Lists 52

3.2.7.Examples 52

3.2.8.Cursor Implementation of Linked Lists 57

3.3.The Stack ADT 62

3.3.1.Stack Model 62

3.3.2.Implementation of Stacks 63

3.3.3.Applications 71

3.4.The Queue ADT 79

3.4.1.Quene Model 79

3.4.2.Array Implementation of Queues 79

3.4.3.Applications of Queues 84

Summary 85

Exercises 85

4 Trees 89

4.1.Preliminaries 89

4.1.1.Implementation of Trees 90

4.1.2.Tree Traversals with an Application 91

4.2.Binary Trees 95

4.2.1.Implementation 96

4.2.2.Expression Trees 97

4.3.The Search Tree ADT—Binary Search Trees 100

4.3.1.MakeEmpty 101

4.3.2.Find 101

4.3.3.FindMin and FindMax 103

4.3.4.Insert 104

4.3.5.Delete 105

4.3.6.Average-Case Analysis 107

4.4.AVL Trees 110

4.4.1.Single Rotation 112

4.4.2.Double Rotation 115

4.5.Splay Trees 123

4.5.1.A Simple Idea(That Does Not Work) 124

4.5.2.Splaying 126

4.6.Tree Traversals(Revisited) 132

4.7.B-Trees 133

Summary 138

Exercises 139

References 146

5 Hashing 149

5.1.General Idea 149

5.2.Hash Function 150

5.3.Separate Chaining 152

5.4.Open Addressing 157

5.4.1.Linear Probing 157

5.4.2.Quadratic Probing 160

5.4.3.Double Hashing 164

5.5.Rehashing 165

5.6.Extendible Hashing 168

Summary 171

Exercises 172

References 175

6 Priority Queues(Heaps) 177

6.1.Model 177

6.2.Simple Implementations 178

6.3.Binary Heap 179

6.3.1.Structure Property 179

6.3.2.Heap Order Property 180

6.3.3.Basic Heap Operations 182

6.3.4.Other Heap Operations 186

6.4.Applications of Priority Queues 189

6.4.1.The Selection Problem 189

6.4.2.Event Simulation 191

6.5.d-Heaps 192

6.6.Leftist Heaps 193

6.6.1.Leftist Heap Property 193

6.6.2.Leftist Heap Operations 194

6.7.Skew Heaps 200

6.8.Binomial Queues 202

6.8.1.Binomial Queue Structure 202

6.8.2.Binomial Queue Operations 204

6.8.3.Implementation of Binomial Queues 205

Summary 212

Exercises 212

References 216

7 Sorting 219

7.1.Preliminaries 219

7.2.Insertion Sort 220

7.2.1.The Algorithm 220

7.2.2.Analysis of Insertion Sort 221

7.3.A Lower Bound for Simple Sorting Algorithms 221

7.4.Shellsort 222

7.4.1.Worst-Case Analysis of Shellsort 224

7.5.Heapsort 226

7.5.1.Analysis of Heapsort 228

7.6.Mergesort 230

7.6.1.Analysis of Mergesort 232

7.7.Quicksort 235

7.7.1.Picking the Pivot 236

7.7.2.Partitioning Strategy 237

7.7.3.Small Arrays 240

7.7.4.Actual Quicksort Routines 240

7.7.5.Analysis of Quicksort 241

7.7.6.A Linear-Expected-Time Algorithm for Selection 245

7.8.Sorting Large Structures 247

7.9.A General Lower Bound for Sorting 247

7.9.1.Decision Trees 247

7.10.Bucket Sort 250

7.11.External Sorting 250

7.11.1.Why We Need New Algorithms 251

7.11.2.Model for External Sorting 251

7.11.3.The Simple Algorithm 251

7.11.4.Multiway Merge 253

7.11.5.Polyphase Merge 254

7.11.6.Replacement Selection 255

Summary 256

Exercises 257

References 261

8 The Disjoint Set ADT 263

8.1.Equivalence Relations 263

8.2.The Dynamic Equivalence Problem 264

8.3.Basic Data Structure 265

8.4.Smart Union Algorithms 269

8.5.Path Compression 271

8.6.Worst Case for Union-by-Rank and Path Compression 273

8.6.1.Analysis of the Union/Find Algorithm 273

8.7.An Application 279

Summary 279

Exercises 280

References 281

9 Graph Algorithms 283

9.1.Definitions 283

9.1.1.Representation of Graphs 284

9.2.Topological Sort 286

9.3.Shortest-Path Algorithms 290

9.3.1.Unweighted Shortest Paths 291

9.3.2.Dijkstra's Algorithm 295

9.3.3.Graphs with Negative Edge Costs 304

9.3.4.Acyclic Graphs 305

9.3.5.All-Pairs Shortest Path 308

9.4.Network Flow Problems 308

9.4.1.A Simple Maximum-Flow Algorithm 309

9.5.Minimum Spanning Tree 313

9.5.1.Prim's Algorithm 314

9.5.2.Kruskal's Algorithm 316

9.6.Applications of Depth-First Search 319

9.6.1.Undirected Graphs 320

9.6.2.Biconnectivity 322

9.6.3.Euler Circuits 326

9.6.4.Directed Graphs 329

9.6.5.Finding Strong Components 331

9.7.Introduction to NP-Completeness 332

9.7.1.Easy vs.Hard 333

9.7.2.The Class NP 334

9.7.3.NP-Complete Problems 335

Summary 337

Exercises 337

References 343

10 Algorithm Design Techniques 347

10.1.Greedy Algorithms 347

10.1.1.A Simple Scheduling Problem 348

10.1.2.Huffman Codes 351

10.1.3.Approximate Bin Packing 357

10.2.Divide and Conquer 365

10.2.1.Running Time of Divide and Conquer Algorithms 366

10.2.2.Closest-Points Problem 368

10.2.3.The Selection Problem 373

10.2.4.Theoretical Improvements for Arithmetic Problems 376

10.3.Dynamic Programming 380

10.3.1.Using a Table Instead of Recursion 380

10.3.2.Ordering Matrix Multiplications 383

10.3.3.Optimal Binary Search Tree 387

10.3.4.All-Pairs Shortest Path 390

10.4.Randomized Algorithms 392

10.4.1.Random Number Generators 394

10.4.2.Skip Lists 397

10.4.3.Primality Testing 399

10.5.Backtracking Algorithms 401

10.5.1.The Turnpike Reconstruction Problem 403

10.5.2.Games 407

Summary 413

Exercises 415

References 422

11 Amortized Analysis 427

11.1.An Unrelated Puzzle 428

11.2.Binomial Queues 428

11.3.Skew Heaps 433

11.4.Fibonacci Heaps 435

11.4.1.Cutting Nodes in Leftist Heaps 436

11.4.2.Lazy Merging for Binomial Queues 439

11.4.3.The Fibonacci Heap Operations 442

11.4.4.Proof of the Time Bound 443

11.5.Splay Trees 445

Summary 449

Exercises 450

References 451

12 Advanced Data Structures and Implementation 453

12.1.Top-Down Splay Trees 453

12.2.Red Black Trees 457

12.2.1.Bottom-Up Insertion 462

12.2.2.Top-Down Red Black Trees 463

12.2.3.Top-Down Deletion 465

12.3.Deterministic Skip Lists 469

12.4.AA-Trees 476

12.5.Treaps 482

12.6.k-d Trees 485

12.7.Pairing Heaps 488

Summary 494

Exercises 495

References 497

Index 501

精品推荐