11-15 16:17
武汉大学 Java 0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
09-20 00:54
武汉大学 Java 卷福同学:算法题解法:
//解法:使用 Fisher-Yates 洗牌来确保所有元素都被随机打乱。
//在洗牌过程中,确保每个元素不会被放回到原位置上。
public static void shuffle(int[] arr) {
Random random = new Random();
for (int i = arr.length - 1; i >= 0; i--) {
int j = random.nextInt(i + 1);
// 确保每个元素不会在原来的位置
if (j == i) {
// 如果选择的下标和当前位置相同,选择另一个下标,确保不会是原位置
j = (j + 1) % (i + 1);
}
//swap
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
关注他的用户也关注了: