본문 바로가기

# Foundations of Algorithms, 5/Ed > 알고리즘

## 도서간략정보

Foundations of Algorithms, 5/Ed
판매가격 49,000원
저자 Neapolitan 외국도서 Jones & Bartlett 영어 2014-3 696 9781284049190 온, 오프라인 서점에서 구매 하실 수 있습니다.

• ## 도서 정보

### 도서 상세설명

Chapter 1 Algorithms: Efficiency, Analysis, and Order 1

1.1 Algorithms 2

1.2 The Importance of Developing Efficient Algorithms 9

1.2.1 Sequential Search Versus Binary Search 9

1.2.2 The Fibonacci Sequence 12

1.3 Analysis of Algorithms 17

1.3.1 Complexity Analysis 17

1.3.2 Applying the Theory 24

1.3.3 Analysis of Correctness 24

1.4 Order 25

1.4.1 An Intuitive Introduction to Order 25

1.4.2 A Rigorous Introduction to Order 28

1.4.3 Using a Limit to Determine Order 39

1.5 Outline of This Book 41

Exercises 42

Chapter 2 Divide-and-Conquer 47

2.1 Binary Search 48

2.2 Mergesort 53

2.3 The Divide-and-Conquer Approach 59

2.4 Quicksort (Partition Exchange Sort) 60

2.5 Strassen's Matrix Multiplication Algorithm 67

2.6 Arithmetic with Large Numbers 72

2.6.1 Representation of Large Integers: Addition and Other Linear-Time Operations 72

2.6.2 Multiplication of Large Integers 72

2.7 Determining Thresholds 78

2.8 When Not to Use Divide-and-Conquer 82

Exercises 83

Chapter 3 Dynamic Programming 91

3.1 The Binomial Coefficient 92

3.2 Floyd's Algorithm for Shortest Paths 97

3.3 Dynamic Programming and Optimization Problems 105

3.4 Chained Matrix Multiplication 107

3.5 Optimal Binary Search Trees 116

3.6 The Traveling Salesperson Problem 125

3.7 Sequence Alignment 133

Exercises 141

Chapter 4 The Greedy Approach 145

4.1 Minimum Spanning Trees 148

4.1.1 Prim's Algorithm 152

4.1.2 Kruskal's Algorithm 158

4.1.3 Comparing Prim's Algorithm with Kruskal's Algorithm 163

4.1.4 Final Discussion 163

4.2 Dijkstra's Algorithm for Single-Source Shortest Paths 164

4.3 Scheduling 167

4.3.1 Minimizing Total Time in the System 167

4.4 Huffman Code 177

4.4.1 Prefix Codes 178

4.4.2 Huffman's Algorithm 179

4.5 The Greedy Approach Versus Dynamic Programming: The Knapsack Problem 183

4.5.1 A Greedy Approach to the 0-1 Knapsack Problem 183

4.5.2 A Greedy Approach to the Fractional Knapsack Problem 185

4.5.3 A Dynamic Programming Approach to the 0-1 Knapsack Problem 185

4.5.4 A Refinement of the Dynamic Programming Algorithm for the 0-1 Knapsack Problem 186

Exercises 189

Chapter 5 Backtracking 197

5.1 The Backtracking Technique 198

5.2 The n-Queens Problem 206

5.3 Using a Monte Carlo Algorithm to Estimate the Efficiency of a Backtracking Algorithm 210

5.4 The Sum-of-Subsets Problem 214

5.5 Graph Coloring 219

5.6 The Hamiltonian Circuits Problem 224

5.7 The 0-1 Knapsack Problem 227

5.7.1 A Backtracking Algorithm for the 0-1 Knapsack Problem 227

5.7.2 Comparing the Dynamic Programming Algorithm and the Backtracking Algorithm for the 0-1 Knapsack Problem 237

Exercises 237

Chapter 6 Branch-and-Bound 243

6.1 Illustrating Branch-and-Bound with the 0-1 Knapsack Problem 245

6.1.1 Breadth-First Search with Branch-and-Bound Pruning 245

6.1.2 Best-First Search with Branch-and-Bound Pruning 251

6.2 The Traveling Salesperson Problem 26

6.3 Abductive Inference (Diagnosis) 265

Exercises 274

Chapter 7 Introduction to Computational Complexity: The Sorting Problem 277

7.1 Computational Complexity 278

7.2 Insertion Sort and Selection Sort 280

7.3 Lower Bounds for Algorithms that Remove at Most One Inversion per Comparison 285

7.4 Mergesort Revisited 287

7.5 Quicksort Revisited 293

7.6 Heapsort 295

7.6.1 Heaps and Basic Heap Routines 295

7.6.2 An Implementation of Heapsort 299

7.7 Comparison of Mergesort, Quicksort, and Heapsort 306

7.8 Lower Bounds for Sorting Only by Comparison of Keys 307

7.8.1 Decision Trees for Sorting Algorithms 307

7.8.2 Lower Bounds for Worst-Case Behavior 310

7.8.3 Lower Bounds for Average-Case Behavior 313

7.9 Sorting by Distribution (Radix Sort) 318

Exercises 322

Chapter 8 More Computational Complexity: The Searching Problem 329

8.1 Lower Bounds for Searching Only by Comparisons of Keys 330

8.1.1 Lower Bounds for Worst-Case Behavior 332

8.1.2 Lower Bounds for Average-Case Behavior 334

8.2 Interpolation Search 340

8.3 Searching in Trees 343

8.3.1 Binary Search Trees 344

8.3.2 B-Trees 348

8.4 Hashing 349

8.5 The Selection Problem: Introduction to Adversary Arguments 354

8.5.1 Finding the Largest Key 355

8.5.2 Finding Both the Smallest and Largest Keys 356

8.5.3 Finding the Second-Largest Key 363

8.5.4 Finding the kth-Smallest Key 368

8.5.5 A Probabilistic Algorithm for the Selection Problem 376

Exercises 380

Chapter 9 Computational Complexity and intractability: An Introduction to the Theory of NP 385

9.1 Intractability 386

9.2 Input Size Revisited 388

9.3 The Three General Problems 392

9.3.1 Problems for Which Polynomial-Time Algorithms Have Been Found 392

9.3.2 Problems That Have Been Proven to Be Intractable 392

9.3.3 Problems That Have Not Been Proven to Be Intractable but for Which Polynomial-Time Algorithms Have Never Been Found 393

9.4 The Theory of NP 394

9.4.1 The Sets P and NP 396

9.4.2 NP-Complete Problems 400

9.4.3 NP-Hard, NP-Easy, and NP-Equivalent Problems 412

9.5 Handling NP-Hard Problems 416

9.5.1 An Approximation Algorithm for the Traveling Salesperson Problem 417

9.5.2 An Approximation Algorithm for the Bin-Packing Problem 421

Exercises 426

Chapter 10 Number-Theoretic Algorithms 429

10.1 Number Theory Review 430

10.1.1 Composite and Prime Numbers 430

10.1.2 Greatest Common Divisor 431

10.1.3 Prime Factorization 434

10.1.4 Least Common Multiple 437

10.2 Computing the Greatest Common Divisor 437

10.2.1 Euclid's Algorithm 438

10.2.2 An Extension to Euclid's Algorithm 442

10.3 Modular Arithmetic Review 444

10.3.1 Group Theory 444

10.3.2 Congruency Modulo n 446

10.3.3 Subgroups 452

10.4 Solving Modular Linear Equations 458

10.5 Computing Modular Powers 464

10.6 Finding Large Prime Numbers 466

10.6.1 Searching for a Large Prime 467

10.6.2 Checking if a Number Is Prime 468

10.7 The RSA Public-Key Cryptosystem 486

10.7.1 Public-Key Cryptosystems 486

10.7.2 The RSA Cryptosystem 487

Exercises 490

Chapter 11 Introduction to Parallel Algorithms 495

11.1 Parallel Architectures 498

11.1.1 Control Mechanism 498

11.1.3 Interconnection Networks 501

11.2 The PRAM Model 505

11.2.1 Designing Algorithms for the CREW PRAM Model 507

11.2.2 Designing Algorithms for the CRCW PRAM Model 515

Exercises 518

Appendix A Review of Necessary Mathematics 521

A.l Notation 521

A.2 Functions 523

A.3 Mathematical Induction 524

A.4 Theorems and Lemmas 531

A.5 Logarithms 532

A.5.1 Definition and Properties of Logarithms 532

A.5.2 The Natural Logarithm 534

A.6 Sets 536

A.7 Permutations and Combinations 538

A.8 Probability 541

A.8.1 Randomness 546

A.8.2 The Expected Value 550

Exercises 552

Appendix B Solving Recurrence Equations: With Applications to Analysis of Recursive Algorithms 559

B.l Solving Recurrences Using Induction 559

B.2 Solving Recurrences Using the Characteristic Equation 563

B.2.1 Homogeneous Linear Recurrences 563

B.2.2 Nonhomogeneous Linear Recurrences 572

B.2.3 Change of Variables (Domain Transformations) 578

B.3 Solving Recurrences by Substitution 581

B.4 Extending Results for n, a Power of a Positive Constant b, to n in General 583

B.5 Proofs of Theorems 589

Exercises 592

Appendix C Data Structures for Disjoint Sets 599

References 609

Index 615

사용후기가 없습니다.

• ## 배송/교환정보

### 배송정보

배송 안내 입력전입니다.

### 교환/반품

교환/반품 안내 입력전입니다.

선택하신 도서가 장바구니에 담겼습니다.

계속 둘러보기 장바구니보기
• ## 문의처

02-999-2274~5

월-금 am 9:00 - pm 05:00
점심시간 : am 12:00 - pm 01:00

hongpub@hongpub.co.kr

• ## 도서출판 홍릉 정보

서울특별시 강북구 인수봉로50길 10 (수유동 455-60)
대표 : 송 준
사업자 등록번호 : 210-90-69650
전화 : 02-999-2274~5 팩스 : 02-905-6729
개인정보 보호책임자 : 송 준

회사소개 개인정보 이용약관