このコードは完全なシャッフルアルゴリズムに対して正しいですか?私は常に0からnまでの数値を生成し、その数値を配列の最後の要素と交換して、nの範囲を狭めようとしています。ただし、n = 0の場合、例外が発生します。このケースにどのように対処しますか?
int [] array ={1,2,3,4,5};
Random random = new Random();
int n=array.length;
while(n--!=0)
{
int number = random.nextInt(n);
int temp = array[n];
array[n] = array[number];
array[number] = temp;
}
編集:それを--n> 0に変更すると、正しく機能しますが、その場合、n = 0に対して何もしないため、シャッフルアルゴリズムを正しく実装していますか?