Read without ads and support Scribd by becoming a Scribd Premium Reader.
 
A Practical Introduction toData Structures and AlgorithmAnalysisThird Edition (Java Version)
Clifford A. Shaffer
Department of Computer ScienceVirginia TechBlacksburg, VA 24061January 19, 2010Copyrightc
2009-2010 by Clifford A. Shaffer.This document is made freely available for educational and othernon-commercial use.You may make copies of this file and redistribute it without charge.You may extract portions of this document provided that the front page,including the title, author, and this notice are included.Any commercial use of this document requires the written consent of theauthor.The author can be reached at
shaffer@cs.vt.edu
.Further information about this text is available at
http://people.cs.vt.edu/˜shaffer/Book/
 
Contents
Preface xiii
I Preliminaries 1
1 Data Structures and Algorithms 3
1.1 A Philosophy of Data Structures 41.1.1 The Need for Data Structures 41.1.2 Costs and Benets 61.2 Abstract Data Types and Data Structures 81.3 Design Patterns 121.3.1 Flyweight 131.3.2 Visitor 141.3.3 Composite 151.3.4 Strategy 161.4 Problems, Algorithms, and Programs 171.5 Further Reading 191.6 Exercises 21
2 Mathematical Preliminaries 25
2.1 Sets and Relations 252.2 Miscellaneous Notation 292.3 Logarithms 312.4 Summations and Recurrences 33
iii
 
iv
Contents
2.5 Recursion 362.6 Mathematical Proof Techniques 392.6.1 Direct Proof 402.6.2 Proof by Contradiction 402.6.3 Proof by Mathematical Induction 412.7 Estimating 472.8 Further Reading 492.9 Exercises 50
3 Algorithm Analysis 57
3.1 Introduction 573.2 Best, Worst, and Average Cases 633.3 A Faster Computer, or a Faster Algorithm? 653.4 Asymptotic Analysis 673.4.1 Upper Bounds 683.4.2 Lower Bounds 703.4.3
Θ
Notation 713.4.4 Simplifying Rules 723.4.5 Classifying Functions 733.5 Calculating the Running Time for a Program 743.6 Analyzing Problems 793.7 Common Misunderstandings 813.8 Multiple Parameters 833.9 Space Bounds 843.10 Speeding Up Your Programs 863.11 Empirical Analysis 893.12 Further Reading 903.13 Exercises 913.14 Projects 95
II Fundamental Data Structures 97
4 Lists, Stacks, and Queues 99
Search History:
Searching...
Result 00 of 00
00 results for result for
  • p.
  • Notes
    Load more