Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more ➡
Download
Standard view
Full view
of .
Add note
Save to My Library
Sync to mobile
Look up keyword or section
Like this
2Activity
×

Table Of Contents

0 of .
Results for:
No results containing your search query
P. 1
Java3e20101007

Java3e20101007

Ratings: (0)|Views: 2,070|Likes:
Published by PeterCornstalk
A Practical Introduction to Data Structures and Algorithm Analysis Third Edition (Java Version)

Clifford A. Shaffer
Department of Computer Science
Virginia Tech
Blacksburg, VA 24061

October 7, 2010

Copyright c 2009-2010 by Clifford A. Shaffer.

This document is made freely available for educational and other non-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 the author.

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/
A Practical Introduction to Data Structures and Algorithm Analysis Third Edition (Java Version)

Clifford A. Shaffer
Department of Computer Science
Virginia Tech
Blacksburg, VA 24061

October 7, 2010

Copyright c 2009-2010 by Clifford A. Shaffer.

This document is made freely available for educational and other non-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 the author.

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/

More info:

Categories:Types, Research, Science
Published by: PeterCornstalk on Dec 17, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See More
See less

11/09/2011

pdf

 
A Practical Introduction toData Structures and AlgorithmAnalysisThird Edition (Java Version)
Clifford A. Shaffer
Department of Computer ScienceVirginia TechBlacksburg, VA 24061October 7, 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

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->