UVA CS 150 - Lecture 10- Quicker Sorting

Unformatted text preview:

Slide 1MenuWhat does  really mean?Meaning of O (“big Oh”)O ExamplesLower Bound:  (Omega)ExamplesTight Bound:  (Theta) ExamplesSortingIs our sort good enough?Divide and Conquer sorting?insertsortinsertoneHow much work is insertsort?Slide 16Slide 17simplesort vs. insertsortCan we do better?ChargeDavid Evanshttp://www.cs.virginia.edu/evansCS150: Computer ScienceUniversity of VirginiaComputer ScienceLecture 10: Quicker Sorting2CS150 Fall 2005: Lecture 10: Measuring WorkMenu•compose and n-times•Measuring Work:What  really means•Quicker Sorting3CS150 Fall 2005: Lecture 10: Measuring WorkWhat does  really mean?•O(x) – it is no more than x work (upper bound)(x) – work scales as x (tight bound)(x) – it is at least x work (lower bound)If O(x) and (x) are true, then (x) is true.4CS150 Fall 2005: Lecture 10: Measuring WorkMeaning of O (“big Oh”)f(x) is O (g (x)) means:There is a positive constant c such that c * f(x) < g(x) for all but a finite number of x values.5CS150 Fall 2005: Lecture 10: Measuring Work O Examplesf(x) is O (g (x)) means:There is a positive constant c such that c * f(x) < g(x) for all but a finite number of x values. x is O (x2)?Yes, c = 1 works fine.10x is O (x)?Yes, c = .09 works fine.x2 is O (x)?No, no matter what c we pick,cx2 > x for big enough x6CS150 Fall 2005: Lecture 10: Measuring WorkLower Bound:  (Omega)f(x) is  (g (x)) means:There is a positive constant c such that c * f(x) > g(x) for all but a finite number of x values. Difference from O – this was <7CS150 Fall 2005: Lecture 10: Measuring Workf(x) is  (g (x)) means:There is a positive constant c such that c * f(x) > g(x) for all but a finite number of x values. f(x) is O (g (x)) means:There is a positive constant c such that c * f(x) < g(x) for all but a finite number of x values. Examples•x is  (x)–Yes, pick c = 2•10x is  (x)–Yes, pick c = 1•Is x2  (x)?–Yes!•x is O(x)–Yes, pick c = .5•10x is O(x)–Yes, pick c = .09•x2 is not O(x)8CS150 Fall 2005: Lecture 10: Measuring WorkTight Bound:  (Theta)f(x) is  (g (x)) iff:f(x) is O (g (x)) and f(x) is  (g (x))9CS150 Fall 2005: Lecture 10: Measuring Work Examples•10x is  (x)–Yes, since 10x is  (x) and 10x is O(x)•Doesn’t matter that you choose different c values for each part; they are independent•x2 is/is not  (x)?–No, since x2 is not O (x) • x is/is not  (x2)?–No, since x2 is not  (x)10CS150 Fall 2005: Lecture 10: Measuring WorkSorting(define (simple-sort cf lst) (if (null? lst) lst (let ((best (find-best cf lst))) (cons best (simple-sort cf (delete lst most))))))(define (find-best cf lst) (insertl (lambda (c1 c2) (if (cf c1 c2) c1 c2)) lst (car lst)))simple-sort is (n2)If we double the length of the list, we amount of work sort does approximately quadruples.11CS150 Fall 2005: Lecture 10: Measuring WorkIs our sort good enough?Takes over 1 second to sort 1000-length list. How long would it take to sort 1 million items?(n2)1s = time to sort 10004s ~ time to sort 20001M is 1000 * 1000Sorting time is n2so, sorting 1000 times as many items will take 10002 times as long = 1 million seconds ~ 11 daysNote: there are 800 Million VISA cards in circulation.It would take 20,000 years to process a VISA transaction at this rate.12CS150 Fall 2005: Lecture 10: Measuring WorkDivide and Conquer sorting?•simple-sort: find the lowest in the list, add it to the front of the result of sorting the list after deleting the lowest•Insertion sort: insert the first element of the list in the right place in the sorted rest of the list13CS150 Fall 2005: Lecture 10: Measuring Workinsertsort(define (insertsort cf lst) (if (null? lst) null (insertone cf(car lst) (insertsort cf (cdr lst)))))14CS150 Fall 2005: Lecture 10: Measuring Workinsertone(define (insertone cf el lst) (if (null? lst) (list el) (if (cf el (car lst)) (cons el lst) (cons (car lst)(insertone cf el (cdr lst))))))15CS150 Fall 2005: Lecture 10: Measuring WorkHow much work is insertsort?(define (insertsort cf lst) (if (null? lst) null (insertone cf(car lst) (insertsort cf (cdr lst)))))(define (insertone cf el lst) (if (null? lst) (list el) (if (cf el (car lst)) (cons el lst) (cons (car lst) (insertone cf el (cdr lst))))))Worst case?Average case?insertone is (n)How many times does insertsort evaluate insertone?n times (once for each element)insertsort is (n2)16CS150 Fall 2005: Lecture 10: Measuring Work> (insertsort < (revintsto 20))(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)Requires 190 applications of <> (insertsort < (intsto 20))(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)Requires 19 applications of <> (insertsort < (rand-int-list 20))(0 11 16 19 23 26 31 32 32 34 42 45 53 63 64 81 82 84 84 92)Requires 104 applications of <17CS150 Fall 2005: Lecture 10: Measuring Work> (simplesort < (intsto 20))(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)Requires 210 applications of <> (simplesort < (rand-int-list 20))(4 4 16 18 19 20 23 32 36 51 53 59 67 69 73 75 82 82 88 89)Requires 210 applications of <18CS150 Fall 2005: Lecture 10: Measuring Worksimplesort vs. insertsort•Both are (n2) worst case (reverse list)•Both are (n2) average case (random)–But insert-sort is about twice as fast•insertsort is (n) best case (ordered list)19CS150 Fall 2005: Lecture 10: Measuring WorkCan we do better?(insertone < 88 (list 1 2 3 5 6 23 63 77 89 90))Suppose we had procedures(first-half lst)(second-half lst)that quickly divided the list in two halves?20CS150 Fall 2005: Lecture 10: Measuring WorkCharge•Read Tyson’s essay (before Friday)–How does it relate to  (n2)–How does it relate to grade inflation–Don’t misinterpret it as telling you to run out and get tattoos and


View Full Document

UVA CS 150 - Lecture 10- Quicker Sorting

Documents in this Course
Objects

Objects

6 pages

Load more
Download Lecture 10- Quicker Sorting
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 10- Quicker Sorting 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 10- Quicker Sorting 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?