js沙雕排序之睡眠排序&随机排序

1.睡眠排序,只要睡的时间多少就可以排序出来不要在乎时间多少

var arr=[4,77,741,41,142,52,244];
var sleepSort=function(arr,callback){
    const res=[];
    arr.forEach(item=>{
        setTimeout(()=>{    
            res.push(item) 
            // 如果执行完毕,回调
            if(res.length===arr.length) callback(res);
        },item)
    });
}
sleepSort(arr,res=>{console.log(res)})

 

2.随机排序,看运气

     // 随机排序
    function randomSort(arr) {
        var n = 0,
            ordered = false;

        function shuffle(array) {
            for (var i = 0, length = arr.length; i < length; i++) {
                var j = Math.floor(Math.random() * length);
                [arr[i], arr[j]] = [arr[j], arr[i]];
                n++;
            }
        }

        function isOrdered(array) {
            for (var i = 1, length = arr.length; i < length; i++) {
                if (arr[i] < arr[i - 1]) {
                    return false;
                }
            }
            return true;
        }
        // 关键代码  嘿嘿
        while (ordered == false) {
            v = shuffle(arr);
            ordered = isOrdered(arr);
        }
        console.log('额。。。计算了' + n + '次')
        return arr;
    }

    randomSort([3, 5, 8, 2, 55, 68, 125, 5536 ]) 

 

随机排序四种方法

方法一:sort

方法二:递归

方法三:迭代

方法四:洗牌算法

posted @   有只橘猫  阅读(155)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
点击右上角即可分享
微信分享提示