lecture01 - Introduction to Algorithms...

Info iconThis preview shows pages 1–18. Sign up to view the full content.

View Full Document Right Arrow Icon
Introduction to Algorithms 6.046J/18.401J/SMA5503 Lecture 1 Prof. Charles E. Leiserson
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Day 1 Introduction to Algorithms L1.2 Welcome to Introduction to Algorithms, Fall 2001 Handouts 1. Course Information 2. Calendar 3. Registration (MIT students only) 4. References 5. Objectives and Outcomes 6. Diagnostic Survey
Background image of page 2
Day 1 Introduction to Algorithms L1.3 Course information 1. Staff 2. Distance learning 3. Prerequisites 4. Lectures 5. Recitations 6. Handouts 7. Textbook (CLRS) 8. Website 9. Extra help 10.Registration (MIT only) 11.Problem sets 12.Describing algorithms 13.Grading policy 14.Collaboration policy ¾ Course information handout
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Day 1 Introduction to Algorithms L1.4 Analysis of algorithms The theoretical study of computer-program performance and resource usage. What’s more important than performance? modularity correctness maintainability functionality robustness user-friendliness programmer time simplicity extensibility reliability
Background image of page 4
Day 1 Introduction to Algorithms L1.5 Why study algorithms and performance? Algorithms help us to understand scalability . Performance often draws the line between what is feasible and what is impossible. Algorithmic mathematics provides a language for talking about program behavior. The lessons of program performance generalize to other computing resources. Speed is fun!
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Day 1 Introduction to Algorithms L1.6 The problem of sorting Input: sequence a 1 , a 2 , …, a n of numbers. Example: Input: 8 2 4 9 3 6 Output: 2 3 4 6 8 9 Output: permutation a' 1 , a' 2 , , a' n such that a' 1 a' 2 a' n .
Background image of page 6
Day 1 Introduction to Algorithms L1.7 Insertion sort I NSERTION -S ORT ( A , n ) A [1 . . n ] for j 2 to n do key A [ j ] i j – 1 while i > 0 and A [ i ] > key do A [ i+ 1] A [ i ] i i – 1 A [ i+ 1] = key “pseudocode” ij key sorted A : 1 n
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Day 1 Introduction to Algorithms L1.8 Example of insertion sort 824936
Background image of page 8
Day 1 Introduction to Algorithms L1.9 Example of insertion sort 824936
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Day 1 Introduction to Algorithms L1.10 Example of insertion sort 824936 284936
Background image of page 10
Day 1 Introduction to Algorithms L1.11 Example of insertion sort 824936 284936
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Day 1 Introduction to Algorithms L1.12 Example of insertion sort 824936 284936 248936
Background image of page 12
Day 1 Introduction to Algorithms L1.13 Example of insertion sort 824936 284936 248936
Background image of page 13

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Day 1 Introduction to Algorithms L1.14 Example of insertion sort 824936 284936 248936
Background image of page 14