Presentation is loading. Please wait.

Presentation is loading. Please wait.

David Evans Class 21: The Story So Far (Quicksort, Continuing Golden Ages) CS200: Computer Science University of Virginia.

Similar presentations


Presentation on theme: "David Evans Class 21: The Story So Far (Quicksort, Continuing Golden Ages) CS200: Computer Science University of Virginia."— Presentation transcript:

1 David Evans http://www.cs.virginia.edu/evans Class 21: The Story So Far (Quicksort, Continuing Golden Ages) CS200: Computer Science University of Virginia Computer Science

2 5 March 2004CS 200 Spring 20042 InsertSort-tree (define (insertel-tree cf el tree) (if (null? tree) (make-tree null el null) (if (cf el (get-element tree)) (make-tree (insertel-tree cf el (get-left tree)) (get-element tree) (get-right tree)) (make-tree (get-left tree) (get-element tree) (insertel-tree cf el (get-right tree)))))) (define (insertsort-tree cf lst) (define (insertsort-worker cf lst) (if (null? lst) null (insertel-tree cf (car lst) (insertsort-worker cf (cdr lst))))) (extract-elements (insertsort-worker cf lst)))  (log n ) n = number of elements in tree  ( n log n ) n = number of elements in lst

3 5 March 2004CS 200 Spring 20043 extract-elements We need to make a list of all the tree elements, from left to right. (define (extract-elements tree) (if (null? tree) null (append (extract-elements (get-left tree)) (cons (get-element tree) (extract-elements (get-right tree))))))

4 5 March 2004CS 200 Spring 20044 Quicksort C. A. R. (Tony) Hoare, 1962 Divide the problem into: –Sorting all elements in the list where (cf (car list) el) is true (it is < the first element) –Sorting all elements in the list where (not (cf (car list) el) is true (it is >= the first element) Will this do better?

5 5 March 2004CS 200 Spring 20045 Quicksort (define (quicksort cf lst) (if (null? lst) lst (append (quicksort cf (filter (lambda (el) (cf el (car lst))) (cdr lst))) (list (car lst)) (quicksort cf (filter (lambda (el) (not (cf el (car lst)))) (cdr lst))))))

6 5 March 2004CS 200 Spring 20046 How much work is quicksort? (define (quicksort cf lst) (if (null? lst) lst (append (quicksort cf (filter (lambda (el) (cf el (car lst))) (cdr lst))) (list (car lst)) (quicksort cf (filter (lambda (el) (not (cf el (car lst)))) (cdr lst)))))) What if the input list is sorted? Worst Case:  ( n 2 ) What if the input list is random? Expected:  ( n log 2 n )

7 5 March 2004CS 200 Spring 20047 Comparing sorts > (testgrowth insertsort-tree) n = 250, time = 20 n = 500, time = 80 n = 1000, time = 151 n = 2000, time = 470 n = 4000, time = 882 n = 8000, time = 1872 n = 16000, time = 9654 n = 32000, time = 31896 n = 64000, time = 63562 n = 128000, time = 165261 (4.0 1.9 3.1 1.9 2.1 5.2 3.3 2.0 2.6) > (testgrowth quicksort) n = 250, time = 20 n = 500, time = 80 n = 1000, time = 91 n = 2000, time = 170 n = 4000, time = 461 n = 8000, time = 941 n = 16000, time = 2153 n = 32000, time = 5047 n = 64000, time = 16634 n = 128000, time = 35813 (4.0 1.1 1.8 2.7 2.0 2.3 2.3 3.3 2.2) Both are  ( n log 2 n ) Absolute time of quicksort much faster

8 5 March 2004CS 200 Spring 20048 Good enough for VISA? n = 128000, time = 35813 36 seconds to sort 128000 with quicksort  ( n log 2 n ) How long to sort 800M items? > (log 4) 1.3862943611198906 > (* 128000 (log 128000)) 1505252.5494914246 > (/ (* 128000 (log 128000)) 36) 41812.57081920624 > (/ (* 128000 (log 128000)) 41812.6) 35.99997487578923 > (/ (* 800000000 (log 800000000)) 41812.6) 392228.6064130373 392000 seconds ~ 4.5 days

9 5 March 2004CS 200 Spring 20049 Any other procedures we’ve seen that are more work than simulating the Universe?

10 5 March 2004CS 200 Spring 200410 PS4: Break Lorenz Cipher Procedure Try all possible wheel settings How many possible wheel settings: 5choices for first wheel * 5choices for second wheel * 5 choices for third wheel What is n ? –The number of wheels There are 5 n possible wheel settings

11 5 March 2004CS 200 Spring 200411 Lorenz Deciphering For PS4: you had 3 wheels, each with 5 possible settings: 5 3 = 125 combinations For WWII: Nazis has 12 wheels, each with more than 5 settings (up to 61 settings) 5 12 = 244 140 625 possible combinations Bletchley Park’s cryptographers had to solve a problem that is 1 953 125 times harder than PS4! (and had to figure out structure of Lorenz machine themselves)

12 5 March 2004CS 200 Spring 200412 Motivation Helps… Confronted with the prospect of defeat, the Allied cryptanalysts had worked night and day to penetrate German ciphers. It would appear that fear was the main driving force, and that adversity is one of the foundations of successful codebreaking. Simon Singh, The Code Book Having bombs dropping on you is at least 1 million times more motivating than getting a gold star!

13 5 March 2004CS 200 Spring 200413 Recap So far, we have been talking amount the work a procedure requires In a few weeks, we will learn how to talk about the amount of work a problem requires –That is, how much work is the best possible sorting procedure? –For the general sorting problem, you can’t do better than quicksort:  ( n log 2 n ) –But, VISA’s problem is simpler, so they can do much better:  ( n )

14 5 March 2004CS 200 Spring 200414 The Endless Golden Age Golden Age – period in which knowledge/quality of something doubles quickly At any point in history, half of what is known about astrophysics was discovered in the previous 15 years! Moore’s law today, but other advances previously: telescopes, photocopiers, clocks, etc.

15 5 March 2004CS 200 Spring 200415 Endless Golden Age and “Grade Inflation” Average student gets twice as smart and well-prepared every 15 years –You had grade school teachers (maybe even parents) who went to college! If average GPA in 1970 is 2.00 what should it be today (if grading standards didn’t change)?

16 5 March 2004CS 200 Spring 200416 Grade Inflation or Deflation? 2.00average GPA in 1970 (“gentleman’s C”?) * 2better students 1970-1985 * 2better students 1985-2003 * 3admitting women, non-whites (1971) * 1.54 population increase * 0.58increase in enrollment Virginia 19704,648,494 Virginia 20007,078,515 Average GPA today should be: 21.4 CS200 has only the best of the best students, and only the best 26/31 of them stayed in the course after PS1, so the average grade in CS200 should be 21.4*2*2*31/26 = 102.06 Students 1970 11,000 Students 2002 18,848 (12,595 UG)

17 5 March 2004CS 200 Spring 200417 Short Golden Ages Golden Age – period in which knowledge/quality of something doubles quickly Endless golden age: at any point in history, the amount known is twice what was known 15 years ago Short golden age: knowledge doubles during a short, “golden” period, but only improves gradually most of the time

18 Average Goals per Game, FIFA World Cups Changed goalkeeper passback rule Goal-den age

19 5 March 2004CS 200 Spring 200419 The Real Golden Rule? Why do fields like astrophysics, medicine, biology and computer science (?) have “endless golden ages”, but fields like –music (1775-1825) –rock n’ roll (1962-1973, or whatever was popular when you were 16) –philosophy (400BC-350BC?) –art (1875-1925?) –soccer (1950-1974) –baseball (1925-1950) –movies (1920-1940) have short golden ages? Thanks to Leah Nylen for correcting this (previously I had only 1930-1940, but that is only true for Hollywood movies).

20 5 March 2004CS 200 Spring 200420 The Story so Far…

21 5 March 2004CS 200 Spring 200421 The Liberal Arts Trivium (3 roads) language Quadrivium (4 roads) numbers GrammarRhetoricLogicArithmetic Geometry Music Astronomy From Lecture 1:

22 5 March 2004CS 200 Spring 200422 Liberal Arts Grammar: study of meaning in written expression Rhetoric: comprehension of verbal and written discourse Logic: argumentative discourse for discovering truth Arithmetic: understanding numbers Geometry: quantification of space Music: number in time Astronomy BNF replacement rules for describing languages, rules of evaluation for meaning Not yet… Interfaces between components (PS6-8), program and user (PS8) Rules of evaluation, if, recursive definitions Not much yet… wait until April Curves as procedures, fractals Yes, listen to “Hey Jude!” Yes: Neil deGrasse Tyson says so Trivium Quadrivium From Lecture 1:

23 5 March 2004CS 200 Spring 200423 Charge If you want to do something important and be remembered, work in a field that has a short golden age from 2003-2018 –Shakespeare will be known a thousand years from now, but no one will have heard of any 21 st century playwright –Bach will be known a thousand years from now, but no 20 th century musician will be –Pele will be known a thousand years from now, but no one will remember Beckham, Ronaldo or Zidane


Download ppt "David Evans Class 21: The Story So Far (Quicksort, Continuing Golden Ages) CS200: Computer Science University of Virginia."

Similar presentations


Ads by Google