23
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

David Evans cs.virginia/evans

Embed Size (px)

DESCRIPTION

Class 21: The Story So Far (Quicksort, Continuing Golden Ages). David Evans http://www.cs.virginia.edu/evans. CS200: Computer Science University of Virginia Computer Science. InsertSort-tree. (define (insertel-tree cf el tree) (if (null? tree) (make-tree null el null) - PowerPoint PPT Presentation

Citation preview

Page 1: David Evans cs.virginia/evans

David Evanshttp://www.cs.virginia.edu/evans

Class 21:The Story So Far (Quicksort, Continuing Golden Ages)

CS200: Computer ScienceUniversity of Virginia

Computer Science

Page 2: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 2

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 ofelements in tree

(n log n)

n = number ofelements in lst

Page 3: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 3

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))))))

Page 4: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 4

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?

Page 5: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 5

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))))))

Page 6: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 6

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: (n2)What if the input list is random?

Expected: (n log2 n)

Page 7: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 7

Comparing sorts> (testgrowth insertsort-tree)n = 250, time = 20n = 500, time = 80n = 1000, time = 151n = 2000, time = 470n = 4000, time = 882n = 8000, time = 1872n = 16000, time = 9654n = 32000, time = 31896n = 64000, time = 63562n = 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 = 20n = 500, time = 80n = 1000, time = 91n = 2000, time = 170n = 4000, time = 461n = 8000, time = 941n = 16000, time = 2153n = 32000, time = 5047n = 64000, time = 16634n = 128000, time = 35813(4.0 1.1 1.8 2.7 2.0 2.3 2.3 3.3 2.2)

Both are (n log2 n) Absolute time of quicksort much faster

Page 8: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 8

Good enough for VISA?n = 128000, time = 35813

36 seconds to sort 128000 with quicksort

(n log2 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

Page 9: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 9

Any other procedures we’ve seen that are more work than

simulating the Universe?

Page 10: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 10

PS4: Break Lorenz Cipher Procedure

• Try all possible wheel settings

• How many possible wheel settings: 5 choices for first wheel

* 5 choices for second wheel

* 5 choices for third wheel

• What is n?– The number of wheels

• There are 5n possible wheel settings

Page 11: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 11

Lorenz Deciphering• For PS4: you had 3 wheels, each with 5

possible settings: 53 = 125 combinations

• For WWII: Nazis has 12 wheels, each with more than 5 settings (up to 61 settings)

512 = 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)

Page 12: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 12

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!

Page 13: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 13

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 log2 n)

– But, VISA’s problem is simpler, so they can do much better: (n)

Page 14: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 14

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.

Page 15: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 15

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)?

Page 16: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 16

Grade Inflation or Deflation?

2.00 average GPA in 1970 (“gentleman’s C”?)* 2 better students 1970-1985* 2 better students 1985-2003* 3 admitting women, non-whites (1971)* 1.54 population increase* 0.58 increase in enrollment

Virginia 1970 4,648,494

Virginia 2000 7,078,515

Average GPA today should be:

21.4 CS200 has only the best of the best students, and onlythe 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,000Students 2002 18,848

(12,595 UG)

Page 17: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 17

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

Page 18: David Evans cs.virginia/evans

0

1

2

3

4

5

6

1930

1934

1938

1950

1954

1958

1962

1966

1970

1974

1978

1982

1986

1990

1994

1998

2002

Ave

rage

Goa

ls p

er G

ame,

FIF

A W

orld

Cup

s

Changed goalkeeperpassback rule

Goal-den age

Page 19: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 19

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 thatis only true for Hollywood movies).

Page 20: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 20

The Story so Far…

Page 21: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 21

The Liberal Arts

Trivium (3 roads)

language

Quadrivium (4 roads)

numbers

Grammar Rhetoric Logic Arithmetic

Geometry

Music

Astronomy

From Lecture 1:

Page 22: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 22

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

Triv

ium

Qua

driv

ium

From Lecture 1:

Page 23: David Evans cs.virginia/evans

5 March 2004 CS 200 Spring 2004 23

ChargeIf 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 21st century playwright

– Bach will be known a thousand years from now, but no 20th century musician will be

– Pele will be known a thousand years from now, but no one will remember Beckham, Ronaldo or Zidane