欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 实现乱序函数?(面试常考)

实现乱序函数?(面试常考)

2025/9/18 15:23:42 来源:https://blog.csdn.net/m0_37981569/article/details/144071127  浏览:    关键词:实现乱序函数?(面试常考)

实现乱序函数?(面试常考)

// v1. 基本的实现
var values = [1, 2, 3, 4, 5];
values.sort(function () {// Math.random() - 0.5 随机得到一个正数、负数或是 0,如果是正数则降序排列,如果是负数则升序排列,如果是 0 就不变,然后不断的升序或者降序,最终得到一个乱序的数组。return Math.random() - 0.5;
})// test
var times = [0, 0, 0, 0, 0];
for (var i = 0; i < 100000; i++) {let arr = [1, 2, 3, 4, 5];arr.sort(() => Math.random() - 0.5);times[arr[4]-1]++;
}console.log(times)// 插入排序
function insertSort(a, from, to) {}// v2: 乱序算法加强版
function shuffle(arr) {for (let i = arr.length; i > 0; i--) {// 遍历数组元素,然后将当前元素与以后随机位置的元素进行交换let j = Math.floor(Math.random() * i);// arr[i - 1] 就是当前的这个arr数组的最后一个元素[arr[i - 1], arr[j]] = [arr[j], arr[j - 1]];}
}

[!NOTE]
v8 为例,v8 在处理 sort 方法时,当目标数组长度小于 10 时,使用插入排序;反之,使用快速排序和插入排序的混合排序。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词