]> アルゴリズムイントロダクション 第 9 章 中央値と順序統計量 (補足)

中央値と順序統計量 (補足)

nanto_vi (TOYAMA Nao)

4 つずつのグループに分割した場合

[4 つずつのグループに分割した場合の x より小さい要素、大きい要素の個数を表した図]

x より大きい要素、小さい要素はそれぞれ少なくとも 3 1 2 n 4 - 2 3 n 8 - 6 , 2 1 2 n 4 - 1 n 4 - 2 個存在するから、 A smaller , A larger の要素数はそれぞれ高々 5 n 8 + 6 , 3 n 4 + 2 個。よって、 T n T n 4 + T max 5 n 8 + 6 3 n 4 + 2 + O n = T n 4 + T 3 n 4 + 2 + O n

O n はある定数 a を用いて a n で抑えられる。ここで、ある定数 c に対して T n c n と仮定すると、 T n c n 4 + c 3 n 4 + 2 + a n c n 4 + 1 + c 3 n 4 + 2 + a n = c n + 3 c + a n > c n

よって、 T n c n で抑えきれない。

6 つずつのグループに分割した場合

x より大きい要素、小さい要素はそれぞれ少なくとも 4 1 2 n 6 - 2 n 3 - 8 , 3 1 2 n 6 - 1 n 4 - 3 個存在するから、 A smaller , A larger の要素数はそれぞれ高々 2 n 3 + 8 , 3 n 4 + 3 個。よって、 T n T n 6 + T max 2 n 3 + 8 3 n 4 + 3 + O n = T n 6 + T 3 n 4 + 3 + O n

O n はある定数 a を用いて a n で抑えられる。ここで、ある定数 c に対して T n c n と仮定すると、 T n c n 6 + c 3 n 4 + 3 + a n c n 6 + 1 + c 3 n 4 + 3 + a n = 11 c n 12 + 4 c + a n = c n - c n 12 - 4 c - a n = c n - c - 12 a 12 n - 4 c

ここで、 c > 12 a とすると、 n 12 c - 12 a 4 c = 48 + 576 a c - 12 a T n c n だから、 T n = O n

Lazy-Select

Select O n に隠された定数が大きいため、一般には Randomized-Select または Lazy-Select が用いられることが多いらしい。

Lazy-Select A i 1 n A の要素数 2 if n < d ( d はある定数) 3 then A を任意の方法でソート 4 return A i 5 B A からランダムに選んだ n 3 4 個の要素 6 j i n 3 4 n = i n - 1 4 7 l Lazy-Select B max j - n 1 8 h Lazy-Select B min j + n n 3 4 9 A 1 h より小さい A の要素 10 A 2 h より大きい A の要素 11 t A 1 の要素数 + 1 12 if i = t 13 then return h 14 if i > t 15 then return Lazy-Select A 2 i - t 16 A 1 1 l より小さい A 1 の要素 17 A 1 2 l より大きい A 1 の要素 18 s A 1 1 の要素数 + 1 19 if i = s 20 then return l 21 if i < s 22 then return Lazy-Select A 1 1 i 23 return Lazy-Select A 1 2 i - s

Randomized-Partition

Randomized-Partition A p r 1 i Random p r 2 値の交換 A r A i 3 return Partition A p r

Partition A p r 1 x A r 2 i p - 1 3 for j p to r - 1 4 do if A j x 5 then i i + 1 6 値の交換 A i A j 7 値の交換 A i + 1 A r 8 return i + 1

スタッフロール

Slide Composer
nanto_vi
Master of Ceremony
motemen
Venue Provider
Hatena Inc.
Rehearsal Collaborator
NISHIDA Atsushi
Exploded
hakobe932
ninjinkun
ujihisa
And You