Normal
Ändere:[icode]int wert = r.nextInt(a.length) + i-1;[/icode]in:[icode]int wert = i - 1 + r.nextInt(a.length - (i - 1));[/icode]Zusätzlich: Lasse for-Schleifen, die über Arrays laufen, niemals mit 1 beginnen und bis <= length laufen. Damit verwirrst du alle Informatiker. Arrayindizes fangen mit 0 an und somit sollten for-Schleifen auch von 0 bis < length laufen. Damit vermeidest du off-by-one errors und auch ständige Subtraktionen wie i-1.
Ändere:
[icode]int wert = r.nextInt(a.length) + i-1;[/icode]
in:
[icode]int wert = i - 1 + r.nextInt(a.length - (i - 1));[/icode]
Zusätzlich: Lasse for-Schleifen, die über Arrays laufen, niemals mit 1 beginnen und bis <= length laufen. Damit verwirrst du alle Informatiker. Arrayindizes fangen mit 0 an und somit sollten for-Schleifen auch von 0 bis < length laufen. Damit vermeidest du off-by-one errors und auch ständige Subtraktionen wie i-1.