JS实现数组随机排序性能最优解

洗牌算法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var arr = [1,2,3,4,5,6,7,8];
			//console.log(arr.length);
			var newArr = [...arr];
			//console.log(newArr);
			//console.log(newArr.length);
			//洗牌算法
		function sortArr(){
     
			for(let i = 0;i<newArr.length;i++){
     
					//随机获取一个下标
					let index = parseInt(Math.random() * newArr.length);
					//console.log("随机的下标"+index);
					//变量 temp 将随机下标的值保存起来
					temp = newArr[index]; 
					//将循环数组newArr第i项的值覆盖随机下标的值         
					newArr[index] = newArr[i];
					//再将变量temp保存的值覆盖数组第i项的值
					newArr[i] = temp;
				}
				return newArr;
			}
			sortArr();
			console.log(newArr);
			
			
			/* 测试性能 */
			/* console.time();
			for(let i = 0 ; i < 10000; i++){
				sortArr();
			}
			console.timeEnd(); */
			
			
			
			
			/* a = Math.random();
			console.log(a);
			console.log(parseInt(a * 8)); */
		</script>
	</head>
	<body>
	</body>
</html>

你可能感兴趣的:(JS实现数组随机排序性能最优解)