[作业] 资料结构与算法 作业六

楼主: syuusyou (syuusyou)   2011-06-04 22:44:50
赚批币的时间又到了…
这次拖了一阵子才翻,该不会大家都已经写出来了吧(想必不太可能XD)
====
6.1 排序(Sorting)与杂凑(Hashing)
(1) 感谢名沅帮忙翻译这一题
考虑以下修改过的随机挑选基准(pivot)的快速排序法,以寻找第k小的元素。当k被
平均随机挑选时(“平均”指的是每个元素被挑选到的机率是相同的),以C(N)表示使用
此算法时,预期的比较次数。试导出C(N)的封闭型式(closed-form)解。你可以在你解
答中使用调和级数的和 H(N)=Σ(n=1 to N)1/n, which is O(log N)。
Quick-k(阵列 a, 整数 N, 整数 k) /* 1 <= k <= N */
‧从a[0]至a[N-1]平均随机选择一个元素作为基准值(pivot)
‧对基准值以外的a[0]至a[N-1]和基准比较(一共比较N-1次),
比基准值小的随机存到另一个M-1个元素长的阵列left;
比基准值大的随机存到另一个N-M个元素长的阵列right。
如果 k = M 就
回传 基准值
否则如果 k < M 就
回传 Quick-k(left, M-1, k)
否则
回传 Quick-k(right, N-M, k-M)
结束如果
提示:Quick-k参数为N, k时,令其比较次数为 T(N, k)。从此算法可得
1 k-1 N
T(N, k) =
作者: CryKing (靠王)   2011-06-04 22:49:00
作者: garychou (天然卷都是好人)   2011-06-04 23:32:00
感谢昌神
作者: allen0326200   2011-06-04 23:42:00
感谢昌神~每次都期待您的翻译=)

Links booklink

Contact Us: admin [ a t ] ucptt.com