Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
Practical Into to Data Structures and Algorithms - Shaffer

Practical Into to Data Structures and Algorithms - Shaffer

Ratings: (0)|Views: 44|Likes:
Published by dtaipala

More info:

Published by: dtaipala on Oct 20, 2011
Copyright:Attribution Non-commercial

Availability:

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

10/20/2011

pdf

text

original

 
A Practical Introduction toData Structures and AlgorithmAnalysis
Edition 3.1 (Java Version)Clifford A. Shaffer
Department of Computer ScienceVirginia TechBlacksburg, VA 24061January 3, 2011Copyrightc
2009-2011 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 803.8 Multiple Parameters 823.9 Space Bounds 833.10 Speeding Up Your Programs 863.11 Empirical Analysis 893.12 Further Reading 903.13 Exercises 903.14 Projects 95
II Fundamental Data Structures 97
4 Lists, Stacks, and Queues 99

You're Reading a Free Preview

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