Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computability Sort homework. Formal definitions of time complexity. Big 0. Homework: Exercises. Searching. Shuffling.

Similar presentations


Presentation on theme: "Computability Sort homework. Formal definitions of time complexity. Big 0. Homework: Exercises. Searching. Shuffling."— Presentation transcript:

1 Computability Sort homework. Formal definitions of time complexity. Big 0. Homework: Exercises. Searching. Shuffling.

2 Reprise Bubble sort –phases. Compare to neighbor and swap, if necessary. Only do next phase if there was a change. Merge –divide in half. Sort each half and then merge (merge step easy/quick)

3 Reports Insertion Heap Quicksort

4 My summaries Insertion –Going i = 2 to n, Put the i th element in its proper place. Simplest to write. Heap –put data into a heap (max heap, binary tree): parent greater than each of child nodes. Remove root (the biggest). Re-build tree and repeat Quicksort –choose pivot. Place items in sections: less than pivot and greater than or equal to pivot (variation: less than, equal, and greater than pivot). Repeat for each section. Depends on good choice of pivots Random. Median. Median of median. Use knowledge of data.

5 Cards Do sorts using cards.

6 Median There are ways to get median or estimate of median or median of medians that do not involve sorting the whole list. Extra credit opportunity!

7 O(f(n)) defines an upper bound. AKA called asymptotic notation. Given two functions, f and g:N  R + then we say f(n) = O(g(n)) or F(n) is O(gn)) g(n) is an asymptotic bound for f(n) IF there exists positive integers c and n 0 such that f(n) = n 0 Informally, for high enough values n, and a coefficient, g(n) is upper bound to f(n).

8 Examples if f(n) = 4n 3 +100n 2 +1000, then f(n) = O(n 3 ) Try n 0 = 1000, c=5. Don't need to pick the lowest values. Note: it also is true that f(n) = O(n 4 ). f(n) is …. Note: the equal sign is used but it is problematic…. But f(n) is not O(n 2 ). f(n) will be more than c*n 2, no matter what choice of c, at some point.

9 Exercises Find c and n 0 and determine g(n) for f(n) n 4 + 1000000 10n 3 +100n+100 Generalize about polynomials

10 logarithms Recall: log b n is the value e such that b e =n Now log b n = log a n / log a b Proof: Show log b n * log a b = log a n. That is, a raised to expression on right is equal to n Call X = log b n, Y= log a b a Y*X = (a Y ) X by rules of exponents a Y is equal to b. b X is equal to n.

11 logarithms for O() notation Can use log (or ln) without mentioning base because the difference is just a coefficient and Big Oh notation allows/uses a coefficient.

12 Note f(n) = log(n) is O(n) n*log(n) is O(n 2 ) These are each strict bounds.

13 small o Given functions f and g, then f(n) = o(g(n)) if that for any c>0, a number n 0 exists such that f(n) =n 0. f(n) is asymptotically less. Another way to say this is lim (f(n)/g(n)) =0 as n  infinity

14 Examples n log(n) = o(n 2 ) n 2 = o(n 3 ) sqrt(n) = o(n)

15 Time complexity let t:N  R + (t a function from naturals to positive reals) Time complexity class TIME(t(n)) is all languages that are decidable by an O(t(n)) time Turing machine.

16 Homework Prove or disprove: 100*n = O(n) n 3 = O(n) 100*n = o(n) e n = o(3 n ) Develop a way to shuffle cards. (Can do research) Think of how to search a sorted for a particular value. Extra credit: research median algorithms to present to class.


Download ppt "Computability Sort homework. Formal definitions of time complexity. Big 0. Homework: Exercises. Searching. Shuffling."

Similar presentations


Ads by Google