140 likes | 372 Views
Advanced Data Structures. (Random topics Gerth finds interesting...). Gerth Stølting Brodal. Formalities. Versions of course : ” normal ”, 3 implementation projects , groups 2-3 people ” honours ”, 4 theoretical projects , individual
E N D
Advanced Data Structures (Random topics Gerth finds interesting...) GerthStølting Brodal
Formalities • Versions of course: • ”normal”, 3 implementationprojects, groups 2-3 people • ”honours”, 4 theoreticalprojects, individual • Exam: Individualdiscussionaboutprojects (Jan.) • Literature: Research papers • Lectures: Highleveldiscription of ideas
Problem Input: Unordered list (x1,x2,...xn) and y1<y2<∙∙∙<yk Output: For eachyidetermineifyi is in the list *Comparison model
Selection [T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduction to Algorithms, 2001, Chapter 9.3] Original [M. Blum, R.W. Floyd, V. Pratt, R. Rivest and R. Tarjan, Time bounds for selection, J. Comp. Syst. Sci. 7 (1973) 448-461] Problem: Given an array A of n elements and an integerk, find the k’th smallest element in A A 3’rd smallest (k=3)
RandomizedSelectionAlgorithm • [C. A. R. Hoare: Algorithm 65: find. Commun. ACM 4(7): 321-322 (1961)] AlgorithmQuickSelect(A,k) p = random element from A A< = { e | e A and e < p } A> = { e | e A and e > p } if |A<|= k-1 thenreturnp if |A<|> k-1 thenreturnQuickSelect(A<,k) returnQuickSelect(A>, k-|A<|-1) ThmQuickSelect runs in expectedO(n) time Proof □
DeterministicSelectionAlgorithm AlgorithmSelect(A,k) • if |A|= 1 thenA[1] A A’ p =Select(A’,|A’|/2) A< = { e | e A and e < p } A> = { e | e A and e > p } if |A<|= k-1 thenreturnp if |A<|> k-1 thenreturnSelect(A<,k) returnSelect(A>, k-|A<|-1) [M. Blum, R.W. Floyd, V. Pratt, R. Rivest and R. Tarjan, Time bounds for selection, J. Comp. Syst. Sci. 7 (1973) 448-461] n/5 groups ... 2 4 1 3 7 8 6 4 2 109 11 3 2 12 5 5 5 n/5 medians, one for eachgroup 3 69 ...
Deterministic Selection Algorithm ThmSelect runs in worst-caseO(n) time Proof = O(n) □ 1 2 3 n/10+1 n/5 <p A’ >p considereachgroup as a sorted column
Application: Lazy Construction of SearchTrees [Y.-T. Ching, K. Mehlhorn, M.H.M. Smid: Dynamic Deferred Data Structuring. Inf. Process. Lett. (IPL) 35(1):37-40 (1990)] 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15 Construction T= sorting = O(n∙logn) SearchingO(log n) Construction + ksearchesO((n+k)∙logn)
Application: Lazy Construction of SearchTrees Find rootusingselection/median and recurse 8 4 12 2 6 10 14 1 3 5 7 9 11 13 15 Construction O(n∙logn)
Application: Lazy Construction of SearchTrees % 8 % 4 12 2 6 10 14 1 3 5 7 9 11 13 15 Search(7) Lazyconstruct nodes on 1 searchpath: 1+2+4+∙∙∙+n/2+n=O(n)
Application: Lazy Construction of SearchTrees ThmLazyconstruction + ksearchesworst-case O(n∙logk) time Proof □ log klevelscompletelybuild O(n) time per level kleafpaths O(n/k) time per leaf
ThmLazyconstruction + ksearchesrequiresworst-caseΩ(n∙logk) time Proof • Consider the elements of the input array in sortedorder, and considerkunsuccessfulsearchkeysy1<∙∙∙<yk. • The algorithm must determine the color (intevalbetweentwosearchkeys) of each element in the input array, otherwise an element could have beenequal to a searchkey. • Thereare (k+1)ncolorings. • A dicisiontree must determine the coloring. • Decision treedepth is ≥ log2(k+1)n = n∙log2 (k+1) □ y1 y2 yk unsuccesfullsearches