[数据结构]随机数序列

painpan 2014-12-10 01:00:03
要求是:生成一个1~n的随机数序列,当增加或者删除一个元素时,使得序列元素值动态更新。例如,一个MP3播放器使用随机方式播放n首歌曲,曲目播放次序就是由1~n组成的一个随机数序列,当增加或者删除一首歌时,及时更新序列中的元素值,做到不重复播放。

问各位大大,该用哪种数据结构实现,我想到的是用顺序表或者单链表实现。实现细节正在尝试写。不知道大家有没有什么好的思路指点我。谢谢指导。
...全文
195 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
AceShot 2014-12-10
  • 打赏
  • 举报
回复

package com.xipai;

import java.util.Random;

public class Shuffle {
	static Random rand = new Random();

	public static void main(String[] args) {
		int[] a = { 1, 2, 3, 4, 5, 6, 7 };
		shuffle(a, a.length);
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i]);
		}
	}

	private static void shuffle(int[] a, int length) {
		for (int i = 0; i < length; i++) {
			int j = rand.nextInt(length - i) + i;
			swap(a, i, j);
		}
	}

	private static void swap(int[] a, int i, int j) {
		int temp = a[i];
		a[i] = a[j];
		a[j] = temp;
	}

}

随机洗牌算法,不知可否帮到你
wyc_ 2014-12-10
  • 打赏
  • 举报
回复
为什么不用两个表呢,已播放的和待播放的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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