洗牌算法-shuffle

shuffle算法-洗牌算法

算法的作用

打乱顺序

算法的实现

等概率的抽取数组中的每一个数,跟最后一个元素交换

// 使用闭包,防止变量污染
(function() {
        function shuffle() {
          // 调用形式: arr.shuffle(); 这里的this指向Array实例
            let arr = this;
            for (let i = arr.length; i >= 0; --i) {
                let randomIndex = Math.floor(Math.random() * (i + 1));
                let itemAtIndex = arr[randomIndex];
                arr[randomIndex] = arr[i];
                arr[i] = itemAtIndex;
            }
            return arr;
        }
  			// 扩展到数组的原型上去
        Array.prototype.shuffle = shuffle;
    })();

开发中的应用

  • 音乐随机播放
  • 数据抽样等
慢慢来,比较快!基础要牢,根基要稳!向大佬致敬!
原文地址:https://www.cnblogs.com/rookie123/p/14508424.html