高效随机排列算法

上班途中心血来潮想出来的一种高效随机排列算法,利用随机数加权然后排序,是不是很简单?
附上JavaScript代码

function getRandomList(arr) {
    let maxWeight = 10 * arr.length;
    let getRandom =  function() {
        return Math.ceil(maxWeight * Math.random());
    }

    let list = [];
    for(let i in arr) {
        list.push({
            weight: getRandom(),
            value: arr[i]
        });
    }
    list.sort(function(a, b) {
        return a.weight > b.weight;
    });

    let ans = [];
    for(let i in list) {
        ans.push(list[i].value);
    }
    return ans;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. 写在前面 要学习算法,“排序”是一个回避不了的重要话题,在分析完并查集算法和常用数据结构之后,今天我们终于可...
    Leesper阅读 2,548评论 0 40
  • 一、什么是算法 算法是对特定问题的解决步骤(对信息进行排序、搜索目标信息等); 算法→更优质的算法→好的程序; 算...
    Canace22阅读 952评论 0 11
  • 日本到处都是便利店,却最爱罗森便利店,鸡块是又便宜又真的好吃的不得了,罗森便利店总是坐落在人家最需要的地方,比如山...
    laqpi阅读 204评论 0 0
  • 作为我考上研究生的奖励,我入手了我的第一部智能手机-HTC G7,终于抛弃了那个方向键已经失灵的java机,从此,...
    lupeng阅读 473评论 0 47
  • 我妈,150cm,47kg,和宋丹丹同款的短发,嗓门大,热爱广场舞,热爱的程度甚至已经可以和那些报道上为了跳广场舞...
    七秒鱼儿阅读 190评论 0 1