How to think about algorithms:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Cambridge
Cambridge University Press
2008
|
Schlagworte: | |
Online-Zugang: | Contributor biographical information Publisher description Table of contents only Inhaltsverzeichnis |
Beschreibung: | xiii, 448 Seiten Illustrationen, Diagramme |
ISBN: | 9780521614108 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035258492 | ||
003 | DE-604 | ||
005 | 20240123 | ||
007 | t | ||
008 | 090120s2008 xxka||| |||| 00||| eng d | ||
010 | |a 2008001238 | ||
020 | |a 9780521614108 |c paperback |9 978-0-521-61410-8 | ||
035 | |a (OCoLC)190843470 | ||
035 | |a (DE-599)BVBBV035258492 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
044 | |a xxk |c GB | ||
049 | |a DE-29T |a DE-11 |a DE-91G | ||
050 | 0 | |a QA9.58 | |
082 | 0 | |a 518/.1 | |
084 | |a ST 134 |0 (DE-625)143590: |2 rvk | ||
084 | |a DAT 530f |2 stub | ||
100 | 1 | |a Edmonds, Jeff |d 1963- |e Verfasser |0 (DE-588)136656714 |4 aut | |
245 | 1 | 0 | |a How to think about algorithms |c Jeff Edmonds, York University |
264 | 1 | |a Cambridge |b Cambridge University Press |c 2008 | |
300 | |a xiii, 448 Seiten |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Algorithms |x Study and teaching | |
650 | 4 | |a Loops (Group theory) |x Study and teaching | |
650 | 4 | |a Invariants |x Study and teaching | |
650 | 4 | |a Recursion theory |x Study and teaching | |
650 | 0 | 7 | |a Algorithmentheorie |0 (DE-588)4200409-3 |2 gnd |9 rswk-swf |
655 | 7 | |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a Algorithmentheorie |0 (DE-588)4200409-3 |D s |
689 | 0 | |5 DE-604 | |
775 | 0 | 8 | |i Äquivalent |n Druck-Ausgabe, Hardcover |z 978-0-521-84931-9 |
856 | 4 | |u http://www.loc.gov/catdir/enhancements/fy0808/2008001238-b.html |3 Contributor biographical information | |
856 | 4 | |u http://www.loc.gov/catdir/enhancements/fy0808/2008001238-d.html |3 Publisher description | |
856 | 4 | |u http://www.loc.gov/catdir/enhancements/fy0808/2008001238-t.html |3 Table of contents only | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017064049&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-017064049 |
Datensatz im Suchindex
_version_ | 1804138540765806593 |
---|---|
adam_text | CONTENTS
vii
Preface page xi
Introduction.....................................1
PART ONE. ITERATIVE ALGORITHMS AND LOOP INVARIANTS
1 Iterative Algorithms: Measures of Progress and Loop Invariants.....5
1.1 A Paradigm Shift: A Sequence of Actions vs. a Sequence of
Assertions 5
1.2 The Steps to Develop an Iterative Algorithm 8
1.3 More about the Steps 12
1.4 Different Types of Iterative Algorithms 21
1.5 Typical Errors 26
1.6 Exercises 27
2 Examples Using More-of-the-lnput Loop Invariants............29
2.1 Coloring the Plane 29
2.2 Deterministic Finite Automaton 31
2.3 More of the Input vs. More of the Output 39
3 Abstract Data Types.............................43
3.1 Specifications and Hints at Implementations 44
3.2 Link List Implementation 51
3.3 Merging with a Queue 56
3.4 Parsing with a Stack 57
4 Narrowing the Search Space: Binary Search................60
4.1 Binary Search Trees 60
4.2 Magic Sevens 62
4.3 VLSI Chip Testing 65
4.4 Exercises 69
5 Iterative Sorting Algorithms.........................71
5.1 Bucket Sort by Hand 71
Contents
5.2 Counting Sort (a Stable Sort) 72
5.3 Radix Sort 75
5.4 Radix Counting Sort 76
6 Euclid s GCD Algorithm...........................79
------- 7 The Loop Invariant for Lower Bounds...................85
viii
PART TWO. RECURSION
8 Abstractions, Techniques, and Theory...................97
8.1 Thinking about Recursion 7
8.2 Looking Forward vs. Backward
8.3 With a Little Help from Your Friends 10°
8.4 The Towers of Hanoi 102
8.5 Checklist for Recursive Algorithms 104
8.6 The Stack Frame 110
8.7 Proving Correctness with Strong Induction !12
9 Some Simple Examples of Recursive Algorithms.............H4
9.1 Sorting and Selecting Algorithms 114
9.2 Operations on Integers I22
9.3 Ackermann s Function I27
9.4 Exercises I28
10 Recursion on Trees.............................130
10.1 Tree Traversals 133
10.2 Simple Examples 135
10.3 Generalizing the Problem Solved I38
10.4 Heap Sort and Priority Queues 141
10.5 Representing Expressions with Trees I49
11 Recursive Images..............................153
11.1 Drawing a Recursive Image from a Fixed Recursive and a Base
Case Image 153
11.2 Randomly Generating a Maze I56
12 Parsing with Context-Free Grammars...................159
PART THREE. OPTIMIZATION PROBLEMS
13 Definition of Optimization Problems................... 171
14 Graph Search Algorithms......................... 173
14.1 A Generic Search Algorithm 174
14.2 Breadth-First Search for Shortest Paths 179
14.3 Dijkstra s Shortest-Weighted-Path Algorithm 183
14.4 Depth-First Search 188
14.5 Recursive Depth-First Search 192
14.6 Linear Ordering of a Partial Order 194
14.7 Exercise 196
Contents
15 Network Flows and Linear Programming................198
15.1 A Hill-Climbing Algorithm with a Small Local Maximum 200
15.2 The Primal-Dual Hill-Climbing Method 206
15.3 The Steepest-Ascent Hill-Climbing Algorithm 214
15.4 Linear Programming 219
15.5 Exercises 223
16 Greedy Algorithms.............................225
16.1 Abstractions, Techniques, and Theory 225
16.2 Examples of Greedy Algorithms 236
16.2.1 Example: The Job/Event Scheduling Problem 236
16.2.2 Example: The Interval Cover Problem 240
16.2.3 Example: The Minimum-Spanning-Tree Problem 244
16.3 Exercises 250
17 Recursive Backtracking...........................251
17.1 Recursive Backtracking Algorithms 251
17.2 The Steps in Developing a Recursive Backtracking 256
17.3 Pruning Branches 260
17.4 Satisfiability 261
17.5 Exercises 265
18 Dynamic Programming Algorithms....................267
18.1 Start by Developing a Recursive Backtracking 267
18.2 The Steps in Developing a Dynamic Programming Algorithm 271
18.3 Subtle Points 277
18.3.1 The Question for the Little Bird 278
18.3.2 Subinstances and Subsolutions 281
18.3.3 The Set of Subinstances 284
18.3.4 Decreasing Time and Space 288
18.3.5 Counting the Number of Solutions 291
18.3.6 The New Code 292
19 Examples of Dynamic Programs......................295
19.1 The Longest-Common-Subsequence Problem 295
19.2 Dynamic Programs as More-of-the-Input Iterative Loop
Invariant Algorithms 300
19.3 A Greedy Dynamic Program: The Weighted lob/Event
Scheduling Problem 303
19.4 The Solution Viewed as a Tree: Chains of Matrix Multiplications 306
19.5 Generalizing the Problem Solved: Best AVL Tree 311
19.6 All Pairs Using Matrix Multiplication 314
19.7 Parsing with Context-Free Grammars 315
19.8 Designing Dynamic Programming Algorithms via Reductions 318
Contents
20 Reductions and NP-Completeness.....................324
20.1 Satisfiability Is at Least as Hard as Any Optimization Problem 326
20.2 Steps to Prove NP-Completeness 330
20.3 Example: 3-Coloring Is NP-Complete 338
20.4 An Algorithm for Bipartite Matching Using the Network
Flow Algorithm 342
21 Randomized Algorithms..........................346
21.1 Using Randomness to Hide the Worst Cases 347
21.2 Solutions of Optimization Problems with a Random Structure 350
PART FOUR. APPENDIX
22 Existential and Universal Quantifiers...................357
23 Time Complexity..............................366
23.1 The Time (and Space) Complexity of an Algorithm 366
23.2 The Time Complexity of a Computational Problem 371
24 Logarithms and Exponentials.......................374
25 Asymptotic Growth.............................377
25.1 Steps to Classify a Function 379
25.2 More about Asymptotic Notation 384
26 Adding-Made-Easy Approximations....................388
26.1 The Technique 389
26.2 Some Proofs for the Adding-Made-Easy Technique 393
27 Recurrence Relations............................398
27.1 The Technique 398
27.2 Some Proofs 401
28 A Formal Proof of Correctness.......................408
PART FIVE. EXERCISE SOLUTIONS............................411
Conclusion....................................437
Index 439
|
any_adam_object | 1 |
author | Edmonds, Jeff 1963- |
author_GND | (DE-588)136656714 |
author_facet | Edmonds, Jeff 1963- |
author_role | aut |
author_sort | Edmonds, Jeff 1963- |
author_variant | j e je |
building | Verbundindex |
bvnumber | BV035258492 |
callnumber-first | Q - Science |
callnumber-label | QA9 |
callnumber-raw | QA9.58 |
callnumber-search | QA9.58 |
callnumber-sort | QA 19.58 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 134 |
classification_tum | DAT 530f |
ctrlnum | (OCoLC)190843470 (DE-599)BVBBV035258492 |
dewey-full | 518/.1 |
dewey-hundreds | 500 - Natural sciences and mathematics |
dewey-ones | 518 - Numerical analysis |
dewey-raw | 518/.1 |
dewey-search | 518/.1 |
dewey-sort | 3518 11 |
dewey-tens | 510 - Mathematics |
discipline | Informatik Mathematik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02027nam a2200481 c 4500</leader><controlfield tag="001">BV035258492</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240123 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090120s2008 xxka||| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2008001238</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780521614108</subfield><subfield code="c">paperback</subfield><subfield code="9">978-0-521-61410-8</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)190843470</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035258492</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxk</subfield><subfield code="c">GB</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-29T</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-91G</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA9.58</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">518/.1</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 134</subfield><subfield code="0">(DE-625)143590:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 530f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Edmonds, Jeff</subfield><subfield code="d">1963-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)136656714</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">How to think about algorithms</subfield><subfield code="c">Jeff Edmonds, York University</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Cambridge</subfield><subfield code="b">Cambridge University Press</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xiii, 448 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Algorithms</subfield><subfield code="x">Study and teaching</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Loops (Group theory)</subfield><subfield code="x">Study and teaching</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Invariants</subfield><subfield code="x">Study and teaching</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Recursion theory</subfield><subfield code="x">Study and teaching</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Algorithmentheorie</subfield><subfield code="0">(DE-588)4200409-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Algorithmentheorie</subfield><subfield code="0">(DE-588)4200409-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="775" ind1="0" ind2="8"><subfield code="i">Äquivalent</subfield><subfield code="n">Druck-Ausgabe, Hardcover</subfield><subfield code="z">978-0-521-84931-9</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.loc.gov/catdir/enhancements/fy0808/2008001238-b.html</subfield><subfield code="3">Contributor biographical information</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.loc.gov/catdir/enhancements/fy0808/2008001238-d.html</subfield><subfield code="3">Publisher description</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.loc.gov/catdir/enhancements/fy0808/2008001238-t.html</subfield><subfield code="3">Table of contents only</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017064049&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-017064049</subfield></datafield></record></collection> |
genre | (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
id | DE-604.BV035258492 |
illustrated | Illustrated |
indexdate | 2024-07-09T21:29:49Z |
institution | BVB |
isbn | 9780521614108 |
language | English |
lccn | 2008001238 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-017064049 |
oclc_num | 190843470 |
open_access_boolean | |
owner | DE-29T DE-11 DE-91G DE-BY-TUM |
owner_facet | DE-29T DE-11 DE-91G DE-BY-TUM |
physical | xiii, 448 Seiten Illustrationen, Diagramme |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | Cambridge University Press |
record_format | marc |
spelling | Edmonds, Jeff 1963- Verfasser (DE-588)136656714 aut How to think about algorithms Jeff Edmonds, York University Cambridge Cambridge University Press 2008 xiii, 448 Seiten Illustrationen, Diagramme txt rdacontent n rdamedia nc rdacarrier Algorithms Study and teaching Loops (Group theory) Study and teaching Invariants Study and teaching Recursion theory Study and teaching Algorithmentheorie (DE-588)4200409-3 gnd rswk-swf (DE-588)4123623-3 Lehrbuch gnd-content Algorithmentheorie (DE-588)4200409-3 s DE-604 Äquivalent Druck-Ausgabe, Hardcover 978-0-521-84931-9 http://www.loc.gov/catdir/enhancements/fy0808/2008001238-b.html Contributor biographical information http://www.loc.gov/catdir/enhancements/fy0808/2008001238-d.html Publisher description http://www.loc.gov/catdir/enhancements/fy0808/2008001238-t.html Table of contents only HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017064049&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Edmonds, Jeff 1963- How to think about algorithms Algorithms Study and teaching Loops (Group theory) Study and teaching Invariants Study and teaching Recursion theory Study and teaching Algorithmentheorie (DE-588)4200409-3 gnd |
subject_GND | (DE-588)4200409-3 (DE-588)4123623-3 |
title | How to think about algorithms |
title_auth | How to think about algorithms |
title_exact_search | How to think about algorithms |
title_full | How to think about algorithms Jeff Edmonds, York University |
title_fullStr | How to think about algorithms Jeff Edmonds, York University |
title_full_unstemmed | How to think about algorithms Jeff Edmonds, York University |
title_short | How to think about algorithms |
title_sort | how to think about algorithms |
topic | Algorithms Study and teaching Loops (Group theory) Study and teaching Invariants Study and teaching Recursion theory Study and teaching Algorithmentheorie (DE-588)4200409-3 gnd |
topic_facet | Algorithms Study and teaching Loops (Group theory) Study and teaching Invariants Study and teaching Recursion theory Study and teaching Algorithmentheorie Lehrbuch |
url | http://www.loc.gov/catdir/enhancements/fy0808/2008001238-b.html http://www.loc.gov/catdir/enhancements/fy0808/2008001238-d.html http://www.loc.gov/catdir/enhancements/fy0808/2008001238-t.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017064049&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT edmondsjeff howtothinkaboutalgorithms |