什么是洗牌算法

公众号:扫码开启算法之旅

《什么是洗牌算法》 

//对数组中的元素进行随机重新排列,并返回
//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;
}

 

点赞