音乐软件中的随机播放算法是怎样实现的?
- 洗牌算法(Shuffle)
- 生成一个随机数(Random)
这里给出洗牌算法的一个实现,跟蓄水池抽样非常类似
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = i;
}
System.out.println(Arrays.toString(arr));
for (int i = 1; i < arr.length; i++) {
int x = ThreadLocalRandom.current().nextInt(i);
int tmp = arr[x];
arr[x] = arr[i];
arr[i] = tmp;
}
System.out.println(Arrays.toString(arr));
参考:洗牌算法分析总结








网友评论