算法设计与分析基础(第3版 影印版)

《算法设计与分析基础(第3版 影印版)》
基本信息
原书名:Introduction to the Design and Analysis of Algorithms, Third Edition
作者: (美)Anany Levitin   
出版社:清华大学出版社
ISBN:9787302311850
上架时间:2013-5-17
出版日期:2013 年5月
开本:16开
页码:596
版次:3-1
所属分类:计算机 > 计算机科学理论与基础知识 > 计算理论 > 算法
算法设计与分析基础(第3版 影印版)
更多关于 》》》《 算法设计与分析基础(第3版 影印版)》
内容简介
    计算机书籍
《算法设计与分析基础(第3版 影印版)》在讲述算法设计技术时采用了新的分类方法,在讨论分析方法时条分缕析,形成了连贯有序、耳目一新的风格。为便于学生掌握,本书涵盖算法入门课程的全部内容,更注重对概念(而非形式)的理解。书中通过一些流行的谜题来激发学生的兴趣,帮助他们加强和提高解决算法问题的能力。每章小结、习题提示和详细解答,形成了非常鲜明的教学特色。
《算法设计与分析基础(第3版 影印版)》特色:
独辟蹊径,采用一种更全面的算法设计技术分类方法
涵盖递归与非递归算法的数学分析,也涉及经验分析和算法可视化
探讨算法的局限性及解决方法
将算法视为解决问题的工具,通过谜题和游戏来开拓算法思维
为学生提供600多道习题(含提示),为教师提供有详细解答的教师手册
目录
《算法设计与分析基础(第3版 影印版)》 
new to the third edition xvii 
preface xix 
1introduction 1 
1.1 what is an algorithm? 3 
exercises 1.1 7 
1.2 fundamentals of algorithmic problem solving 9 
understanding the problem 9 
ascertaining the capabilities of the computational device 9 
choosing between exact and approximate problem solving 11 
algorithm design techniques 11 
designing an algorithm and data structures 12 
methods of specifying an algorithm 12 
proving an algorithm’s correctness 13 
analyzing an algorithm 14 
coding an algorithm 15 
exercises 1.2 17 
1.3 important problem types 18 
sorting 19 
searching 20 
.string processing 20 
graph problems 21 
combinatorial problems 21 
geometric problems 22 
numerical problems 22 
exercises 1.3 23 
1.4 fundamental data structures 25 
linear data structures 25 
graphs 28 
trees 31 
sets and dictionaries 35 
exercises 1.4 37 
summary 38 
2 fundamentals of the analysis of algorithm efficiency 41 
2.1 the analysis framework 42 
measuring an input’s size 43 
units for measuring running time 44 
orders of growth 45 
worst-case, best-case, and average-case efficiencies 47 
recapitulation of the analysis framework 50 
exercises 2.1 50 
2.2 asymptotic notations and basic efficiency classes 52 
informal introduction 52 
o-notation 53 
-notation 54 
-notation 55 
useful property involving the asymptotic notations 55 
using limits for comparing orders of growth 56 
basic efficiency classes 58 
exercises 2.2 58 
2.3 mathematical analysis of nonrecursive algorithms 61 
exercises 2.3 67 
2.4 mathematical analysis of recursive algorithms 70 
exercises 2.4 76 
2.5 example: computing the nth fibonacci number 80 
exercises 2.5 83 
2.6 empirical analysis of algorithms 84 
exercises 2.6 89 
2.7 algorithm visualization 91 
summary 94 
3 brute force and exhaustive search 97 
3.1 selection sort and bubble sort 98 
selection sort 98 
bubble sort 100 
exercises 3.1 102 
3.2 sequential search and brute-force string matching 104 
sequential search 104 
brute-force string matching 105 
exercises 3.2 106 
3.3 closest-pair and convex-hull problems by brute force 108 
closest-pair problem 108 
convex-hull problem 109 
exercises 3.3 113 
3.4 exhaustive search 115 
traveling salesman problem 116 
knapsack problem 116 
assignment problem 119 
exercises 3.4 120 
3.5 depth-first search and breadth-first search 122 
depth-first search 122 
breadth-first search 125 
exercises 3.5 128 
summary 130 
4 decrease-and-conquer 131 
4.1 insertion sort 134 
exercises 4.1 136 
4.2 topological sorting 138 
exercises 4.2 142 
4.3 algorithms for generating combinatorial objects 144 
generating permutations 144 
generating subsets 146 
exercises 4.3 148 
4.4 decrease-by-a-constant-factor algorithms 150 
binary search 150 
fake-coin problem 152 
russian peasant multiplication 153 
josephus problem 154 
exercises 4.4 156 
4.5 variable-size-decrease algorithms 157 
computing a median and the selection problem 158 
interpolation search 161 
searching and insertion in a binary search tree 163 
the game of nim 164 
exercises 4.5 166 
summary 167 
5 divide-and-conquer 169 
5.1 mergesort 172 
exercises 5.1 174 
5.2 quicksort 176 
exercises 5.2 181 
5.3 binary tree traversals and related properties 182 
exercises 5.3 185 
5.4 multiplication of large integers and 
strassen’s matrix multiplication 186 
multiplication of large integers 187 
strassen’s matrix multiplication 189 
exercises 5.4 191 
5.5 the closest-pair and convex-hull problems 
by divide-and-conquer 192 
the closest-pair problem 192 
convex-hull problem 195 
exercises 5.5 197 
summary 198 
6 transform-and-conquer 201 
6.1 presorting 202 
exercises 6.1 205 
6.2 gaussian elimination 208 
lu decomposition 212 
computing a matrix inverse 214 
computing a determinant 215 
exercises 6.2 216 
6.3 balanced search trees 218 
avl trees 218 
2-3 trees 223 
exercises 6.3 225 
6.4 heaps and heapsort 226 
notion of the heap 227 
heapsort 231 
exercises 6.4 233 
6.5 horner’s rule and binary exponentiation 234 
horner’s rule 234 
binary exponentiation 236 
exercises 6.5 239 
6.6 problem reduction 240 
computing the least common multiple 241 
counting paths in a graph 242 
reduction of optimization problems 243 
linear programming 244 
reduction to graph problems 246 
exercises 6.6 248 
summary 250 
7 space and time trade-offs 253 
7.1 sorting by counting 254 
exercises 7.1 257 
7.2 input enhancement in string matching 258 
horspool’s algorithm 259 
boyer-moore algorithm 263 
exercises 7.2 267 
7.3 hashing 269 
open hashing (separate chaining) 270 
closed hashing (open addressing) 272 
exercises 7.3 274 
7.4 b-trees 276 
exercises 7.4 279 
summary 280 
8 dynamic programming 283 
8.1 three basic examples 285 
exercises 8.1 290 
8.2 the knapsack problem and memory functions 292 
memory functions 294 
exercises 8.2 296 
8.3 optimal binary search trees 297 
exercises 8.3 303 
8.4 warshall’s and floyd’s algorithms 304 
warshall’s algorithm 304 
floyd’s algorithm for the all-pairs shortest-paths problem 308 
exercises 8.4 311 
summary 312 
9 greedy technique 315 
9.1 prim’s algorithm 318 
exercises 9.1 322 
9.2 kruskal’s algorithm 325 
disjoint subsets and union-find algorithms 327 
exercises 9.2 331 
9.3 dijkstra’s algorithm 333 
exercises 9.3 337 
9.4 huffman trees and codes 338 
exercises 9.4 342 
summary 344 
10 iterative improvement 345 
10.1 the simplex method 346 
geometric interpretation of linear programming 347 
an outline of the simplex method 351 
further notes on the simplex method 357 
exercises 10.1 359 
10.2 the maximum-flow problem 361 
exercises 10.2 371 
10.3 maximum matching in bipartite graphs 372 
exercises 10.3 378 
10.4 the stable marriage problem 380 
exercises 10.4 383 
summary 384 
11 limitations of algorithm power 387 
11.1 lower-bound arguments 388 
trivial lower bounds 389 
information-theoretic arguments 390 
adversary arguments 390 
problem reduction 391 
exercises 11.1 393 
11.2 decision trees 394 
decision trees for sorting 395 
decision trees for searching a sorted array 397 
exercises 11.2 399 
11.3 p, np, and np-complete problems 401 
p and np problems 402 
np-complete problems 406 
exercises 11.3 409 
11.4 challenges of numerical algorithms 412 
exercises 11.4 419 
summary 420 
12 coping with the limitations of algorithm power 423 
12.1 backtracking 424 
n-queens problem 425 
hamiltonian circuit problem 426 
subset-sum problem 427 
general remarks 428 
exercises 12.1 430 
12.2 branch-and-bound 432 
assignment problem 433 
knapsack problem 436 
traveling salesman problem 438 
exercises 12.2 440 
12.3 approximation algorithms for np-hard problems 441 
approximation algorithms for the traveling salesman problem 443 
approximation algorithms for the knapsack problem 453 
exercises 12.3 457 
12.4 algorithms for solving nonlinear equations 459 
bisection method 460 
method of false position 464 
newton’s method 464 
exercises 12.4 467 
summary 468 
epilogue 471 
appendix a 
useful formulas for the analysis of algorithms 475 
properties of logarithms 475 
combinatorics 475 
important summation formulas 476 
sum manipulation rules 476 
approximation of a sum by a definite integral 477 
floor and ceiling formulas 477 
miscellaneous 477 
appendix b 
short tutorial on recurrence relations 479 
sequences and recurrence relations 479 
methods for solving recurrence relations 480 
common recurrence types in algorithm analysis 485 
references 493 
hints to exercises 503 
index 547
图书信息来源: 互动出版网

 

你可能感兴趣的:(算法)