Javascript数组完全随机排列(数组乱序)
参考链接:https://www.h5jun.com/post/array-shuffle.html
数组乱序的错误方法及详解请浏览 参考链接 https://www.h5jun.com/post/array-shuffle.html
以下2种方法我认为是比较实用的:
(1)时间复杂度约为 O(n2),splice()方法会遍历一次
function shuffle(a) {
var b = [];
while (a.length > 0) {
var index = parseInt(Math.random() * (a.length - 1));
b.push(a[index]);
a.splice(index, 1);
}
return b;
}
(2)时间复杂度为 O(n)
function shuffle(a) {
var len = a.length;
for (var i = 0; i < len - 1; i++) {
var index = parseInt(Math.random() * (len - i));
var temp = a[index];
a[index] = a[len - i - 1];
a[len - i - 1] = temp;
}
}