Javaエバンジェリストがお届けするホットな話題
5分でわかる今週のJava ホットトピック
水曜日 2 28, 2007
今週のクイズ(4):シャッフル

先週はJSPの問題でしたが今回はまたJava SEな感じの問題です。

シャッフル/シャッフル/シャッフル

 安全なパスワードを作りたい、音楽の再生順序を十分にランダムな順んにしたい、写真のスライドの順番をランダムにしたい、などなど、ランダムに並び替えたい、という事情は実はかなり身近な問題です。今回はそんなプログラムです。なお、今回のプログラムでは、完全にこれが答え!というのはなく、簡単な改造で十分ランダムになるという程度しか回答は用意できていませんがご了承ください。

public class Shuffle {
public static <T> void shuffle(T[] a) {
Random r = new Random();
for (int i = 0; i < a.length; i++) {
int j = r.nextInt(a.length);
int k = r.nextInt(a.length);

swap(a, j, k);
}
}
public static <T> void swap(T[] a, int i, int j) {
if (i != j) {
T tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}

投稿されたコメント:

コメント
コメントは無効になっています。
過去の記事
« 12月 2009
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
今日
Click me to subscribeこのブログを購読する(RSS)
検索

リンク
 

Today's Page Hits: 46