我得到了一组球,我的最终目标是找到至少一半的球是相同的颜色。我每次只能挑两个球来决定它们是不是同一种颜色那么,如何设计一个采用o(n logn)判定的分治算法来解决这个问题呢?如果有人知道这个问题,非常感谢!

最佳答案

也许你可以倒着做——如果你不知道比较中的答案,那么只有不到一半的球是同一颜色的合并排序分组。。。

r g r b r y r r  // worst case arrangement

rg rb ry rr
    ↓            // 3 * (n / 4) comparisons
rr gb rrr y
    ↓            // 3 * (n / 8) comparisons
rrrrr gby

关于algorithm - 设计采用O(n log n)确定的分治法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32446957/

10-09 05:26