随机歌单算法:有100首歌,随机播放,不能重复播放,怎么实现比较时间复杂度低?

c347840227 2019-09-10 09:12:54
有100首歌,随机播放,不能重复播放,怎么实现比较时间复杂度低?
...全文
641 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
复杂度o(n),很简单的,自己想想。 还有,给分嗯吧。
  • 打赏
  • 举报
回复
如果随机得到i, 先判断所有歌是不是都放完了; while(true){ if a[i]==i,播放i歌,变化a[i],break; else i=a[i]; }
  • 打赏
  • 举报
回复
定义一个长度为一百标记数组。 用并查集。 int a[100]; //初始a[i]=i;若a[i]==i表示i号歌为被点过。 //如果访问过i号歌曲,a[i]=a[(i+1)%100]; //这样,a[i]会指向从i号往后第一个没被点过的歌。
lx3275852 2019-09-18
  • 打赏
  • 举报
回复
洗牌,大多语言洗牌函数么都带shuffle,搜shuffle就行…… c++的random_shuffle, python的random.shuffle
c347840227 2019-09-10
  • 打赏
  • 举报
回复
好吧,我到了这个:Fisher_Yates(洗牌算法),emmmm

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧