作者Morphee (千磨万击还坚劲)
看板CSSE
标题[问题] 一题ipod shuffle 演算法问题
时间Sun Apr 17 12:28:23 2005
假设存了100首歌
这样一首一首找 找到你要听的歌
平均值是50
O(N)
假设用SHUFFLE 而且资料结构是10首一张专辑(或同个歌手等等)
这样随机选到你要听的那个丛集的机率是10分之1
再来 最糟的情况是往下5或往上5 就可以找到要的歌
平均值是15
O(LOGN)
所以IPOD SHUFFLE 胜利
考虑BIG O时是不用考虑硬体时间的
所有的指令都当成一样长度 且同样执行时间
再来 他说的是使用者 使用上的演算法
不是给电脑TRACE的
如果100首歌 以10当成区间去RANDOM
这样收寻到 其中一个区间机率为10分之ㄧ
也就是说 你运气在不好 按到第10次 也该找到你要的区间了
这样再平均 往下按5 或往上按5(调回连续播放模式) 就是你要找的歌
跟TREE或 ARRAY 没什麽直接太大的关系 别往那边想
而且成长的级数的确是LOGn
他想表达的是 没萤幕并不会在找歌上造成太大的不便
换来的是 这款MP3 其他方面的优点
这样对吗? 这是我朋友的想法啦,不过我觉得怪怪的.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.220.24