公众号:扫码开启算法之旅
//对数组中的元素进行随机重新排列,并返回
//arr:数组
function shuffle(arr) {
for(let i = arr.length - 1; i >= 0; i--) {
//随机从0-i中选择一个下标
let randomIndex = Math.floor(Math.random() * (i + 1));
//将选中的元素与arr[i]交换
let t = arr[randomIndex];
arr[randomIndex] = arr[i];
arr[i] = t;
}
//返回随机重排后的数组
//(随机重排过程发生在原数组上,并未产生新数组)
return arr;
}