160 likes | 207 Views
Computability. Sort homework. Formal definitions of time complexity. Big 0. Homework: Exercises. Searching. Shuffling. Reprise. Bubble sort phases. Compare to neighbor and swap, if necessary. Only do next phase if there was a change. Merge
E N D
Computability Sort homework. Formal definitions of time complexity. Big 0. Homework: Exercises. Searching. Shuffling.
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)
Reports • Insertion • Heap • Quicksort
My summaries • Insertion • Going i = 2 to n, Put the ith 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.
Cards • Do sorts using cards.
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!
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 n0 such that f(n) < c*g(n) for n>= n0 Informally, for high enough values n, and a coefficient, g(n) is upper bound to f(n).
Examples • if f(n) = 4n3+100n2+1000, then f(n) = O(n3) Try n0 = 1000, c=5. Don't need to pick the lowest values. Note: it also is true that f(n) = O(n4). f(n) is …. Note: the equal sign is used but it is problematic…. But f(n) is not O(n2). f(n) will be more than c*n2, no matter what choice of c, at some point.
Exercises Find c and n0 and determine g(n) for f(n) • n4+ 1000000 • 10n3+100n+100 Generalize about polynomials
logarithms Recall: logbn is the value e such that be=n Now • logbn = logan / logab Proof: Show logbn * logab = logan. That is, a raised to expression on right is equal to n Call X = logbn, Y= logab aY*X = (aY)X by rules of exponentsaY is equal to b. bX is equal to n.
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.
Note • f(n) = log(n) is O(n) • n*log(n) is O(n2) These are each strict bounds.
small o • Given functions f and g, then f(n) = o(g(n)) if that for any c>0, a number n0 exists such that f(n) <c*g(n) for n>=n0. f(n) is asymptotically less. Another way to say this is lim (f(n)/g(n)) =0 as n infinity
Examples • n log(n) = o(n2) • n2 = o(n3) • sqrt(n) = o(n)
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.
Homework • Prove or disprove: 100*n = O(n) n3 = O(n) 100*n = o(n) en = o(3n) • 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.