【发布时间】:2011-05-02 12:02:53
【问题描述】:
我在一次面试中被问到这个问题,我给出了各种解决方案,但面试官并不相信。我有兴趣找到解决方案。请发表你的看法:
问:编写一个高效的数据结构来实现 ipod 中的 shuffle。它必须播放所有歌曲,每次以不同的随机顺序播放,同一首歌曲不应重复。 (主要是 O(n))
一个解决方案,面试后我想到了:我可以在没有递归的情况下进行随机快速排序。我们随机选择 1 个枢轴 O(1),然后进行快速排序 O(n)。现在歌曲将按某种顺序排序,我将它们播放到最后。一旦到达终点,我将再次选择一个随机枢轴,并一次又一次地重复此过程。
问候, 瑟图
【问题讨论】:
标签: data-structures random performance memory-efficient