目标是从 1..N 首歌曲中随机选择一首,N 首歌曲不重复,并且能够像 iPod 一样向前和向后迭代。我使用哈希表来存储随机歌曲。有更好的办法吗?
最佳答案
执行此操作的一个简单算法是从所有 N 首歌曲的列表开始,然后使用类似 Fisher-Yates Shuffle 的算法随机打乱数组元素。 。完成此操作后,您将按随机顺序对所有歌曲进行排序,并且不会重复。如果您跟踪列表中的当前索引,则可以通过在数组中向前或向后移动来实现下一个和上一个。
希望这有帮助!
关于algorithm - 类似 iPod 的 shuffle 算法的高效实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16404501/