DOC PREVIEW
Princeton COS 116 - Lecture

This preview shows page 1-2-20-21 out of 21 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Slide 1Today’s focus: efficiency in computationQuestion: How do we measure the “speed” of an algorithm?“Running time” of an algorithmExample: Find MinExample: Find MinExample: Find MinExample: Find MinExample: Find MinEfficiency of Selection SortGauss’s trick : Sum of (n – i) for i = 1 to n – 1Slide 12Pseudocode: Guessing number from1 to nBrief detour: Logarithms (CS view)Running times encountered in this lectureSlide 16Binary search and binary representation of numbersBinary representations (cont’d)Binary representation of n (the more standard definition)Efficiency of Effort: A lens on the worldSlide 21“It ain’t no good if it ain’t snappy enough.”(Efficient Computations) COS 116, Spring 2012Adam FinkelsteinToday’s focus: efficiency in computation“If it is worth doing, it is worth doing well, and fast.”Recall: our model of “computation”: pseudocodeQuestion: How do we measure the “speed” of an algorithm?Ideally, should be independent of:machinetechnology“Running time” of an algorithmDefinition: the number of “elementary operations” performed by the algorithmElementary operations: +, -, *, /, assignment, evaluation of conditionals(discussed also in pseudocode handout)“Speed” of computer: number of elementary operations it can perform per second (Simplified definition)Do not consider this in “running time” of algorithm; technology-dependent.Example: Find Minn items, stored in array AVariables are i, bestbest  1Do for i = 2 to n{if (A[ i ] < A[best]) then{ best  i }}Example: Find Minn items, stored in array AVariables are i, bestbest  1Do for i = 2 to n {if (A[ i ] < A[best]) then{ best  i }}How many operations executed before the loop?A: 0 B: 1 C: 2 D: 3Example: Find Minn items, stored in array AVariables are i, bestbest  1Do for i = 2 to n {if (A[ i ] < A[best]) then{ best  i }}How many operations per iteration of the loop?A: 0 B: 1 C: 2 D: 3Example: Find Minn items, stored in array AVariables are i, bestbest  1Do for i = 2 to n {if (A[ i ] < A[best]) then{ best  i }}How many times does the loop run?A: n B: n+1 C: n-1 D: 2n “iterations”Example: Find Minn items, stored in array AVariables are i, bestbest  1Do for i = 2 to n {if (A[ i ] < A[best]) then{ best  i }}Uses at most 2(n – 1) + 1 operationsInitializationNumber of iterations1 assignment & 1 comparison= 2 operations per loop iteration}(roughly = 2n)Efficiency of Selection SortDo for i = 1 to n – 1 {Find cheapest bottle among those numbered i to nSwap that bottle and the i’th bottle.}For the i’th round, takes at most 2(n – i ) + 3To figure out running time, need to figure out how to sum (n – i) for i = 1 to n – 1 …and then double the result.About 2(n – i) steps3 stepsGauss’s trick : Sum of (n – i) for i = 1 to n – 1S = 1 + 2 + … + (n – 2) + (n – 1) + S = (n – 1) + (n – 2) + … + 2 + 12S = n + n + … + n + n2S = n(n – 1)So total time for selection sort is ≤ n(n – 1) + 3nn – 1 timesDiscussion Time“20 Questions”: I have a number between 1 and a million in mind. Guess it by asking me yes/no questions, and keep the number of questions small.Question 1: “Is the number bigger than half a million?” NoQuestion 2: “Is the number bigger than a quarter million?”Strategy: Each question halves the range of possible answers.NoPseudocode: Guessing number from1 to nLower  1 Upper  n Found  0Do while (Found=0) { Guess Round( (Lower + Upper)/2 ) If (Guess = True Number){Found  1 Print(Guess)} If (Guess < True Number){ Lower  Guess} else {Upper Guess}} BinarySearchHow many times doesthe loop run??Brief detour: Logarithms (CS view)log2 n = K means 2K-1 < n ≤ 2KIn words: K is the number of times you need to divide n by 2 in order to get a number ≤ 1John Napier16 10241048576 8388608 log2 n4 10 20 23nRunning times encountered in this lecturen= 8 n= 1024 n= 1048576 n=8388608log2 n 3 10 20 23n 8 1024 1048576 8388608n264 1048576 1099511627776 70368744177664Efficiency really makes a difference!“There are only 10 types of people in the world – those who know binary and those who don’t.”Next….Binary search and binary representation of numbersSay we know 0 ≤ number < 2KIs 2K / 2 ≤ number < 2K?No YesIs 2K / 4 ≤ number < 2K / 2?NoYesIs 2K × 3/8 ≤ number < 2K / 2?No Yes… … 0 2KBinary representations (cont’d)In general, each number can be uniquely identified by a sequence of yes/no answers to these questions.Correspond to paths down this “tree”:Is 2K / 2 ≤ number < 2K?NoYesIs 2K / 4 ≤ number < 2K / 2?NoYesIs 2K / 8 ≤ number < 2K / 4?No Yes… … Is 2K × 3/8 ≤ number < 2K / 2?No Yes… … …Binary representation of n(the more standard definition)n = 2k bk + 2k-1 bk-1 + … + 2 b2 + b1where the b’s are either 0 or 1)The binary representation of n is:n2 = bk bk – 1 … b2 b1Efficiency of Effort: A lens on the worldQWERTY keyboard“UPS Truck Driver’s Problem” (a.k.a. Traveling Salesman Problem or TSP)CAPTCHA’sQuantum computing[Jim Loy]Can n particles do 2n “operations” in a single step?Or is Quantum Mechanics not quite correct?SIAM J. Computing26(5) 1997Computational efficiency has a bearing on physical


View Full Document

Princeton COS 116 - Lecture

Documents in this Course
Lecture 5

Lecture 5

15 pages

lecture 7

lecture 7

22 pages

Lecture

Lecture

32 pages

Lecture

Lecture

16 pages

Midterm

Midterm

2 pages

Lecture

Lecture

23 pages

Lecture

Lecture

21 pages

Lecture

Lecture

24 pages

Lecture

Lecture

22 pages

Lecture

Lecture

28 pages

Lecture

Lecture

21 pages

Lecture

Lecture

50 pages

Lecture

Lecture

19 pages

Lecture

Lecture

28 pages

Lecture

Lecture

32 pages

Lecture

Lecture

23 pages

Lecture

Lecture

21 pages

Lecture

Lecture

19 pages

Lecture

Lecture

22 pages

Lecture

Lecture

21 pages

Logic

Logic

20 pages

Lab 7

Lab 7

9 pages

Lecture

Lecture

25 pages

Lecture 2

Lecture 2

25 pages

lecture 8

lecture 8

19 pages

Midterm

Midterm

5 pages

Lecture

Lecture

26 pages

Lecture

Lecture

29 pages

Lecture

Lecture

40 pages

Lecture 3

Lecture 3

37 pages

lecture 3

lecture 3

23 pages

lecture 3

lecture 3

20 pages

Lecture

Lecture

24 pages

Lecture

Lecture

19 pages

Load more
Download Lecture
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?