洗牌算法-shuffle

2021-06-08 21:02

阅读:413

标签:随机   实例   item   for   random   数组   变量   元素   调用   

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

开发中的应用

  • 音乐随机播放
  • 数据抽样等

洗牌算法-shuffle

标签:随机   实例   item   for   random   数组   变量   元素   调用   

原文地址:https://www.cnblogs.com/rookie123/p/14508424.html


评论


亲,登录后才可以留言!