Javascript数组完全随机排列(数组乱序)

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;
    }
}

你可能感兴趣的:(javascript,算法)