Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. build-tree(list A of length n):
  2. if n == 1:
  3. return singleton tree of the 1 element in A.
  4.  
  5. let n = 2^k - 1
  6. let l = 2^(k-2) # rank of left partition element
  7. let r = n - 2^(k-2) + 1 # rank of right partition element
  8.  
  9. l_elem = SELECT(l, A) # linear time select
  10. r_elem = SELECT(r, A) # linear time select
  11.  
  12. let L be all elements in A <= l_elem
  13. let R be all elements in A >= r_elem
  14. let C be all elements in A that are not in L or R
  15.  
  16. let tree T = build-tree(C)
  17.  
  18. for i in {0 ... l}:
  19. let L[i] be the left child of leaf i in T
  20. let R[i] be the right child of leaf i in T
  21.  
  22. return T
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement