说起来 数组乱序,这是大厂经常考的一道题,考验的是对数组的操作。那么实现数组乱序,常见经典的解决方法有两种:
1.sort()
取巧排序 ,之所以说取巧,这是一种伪随机。当数组过多是, 随机性会变差!
原理:通过sort随机生成一个数,决定数组相邻两位的排序,直到数组排序结束。
function shuffle(arr){ return arr.sort(function(){ return Math.random()-0.5 }) }
2.洗牌算法 Fisher–Yates shuffle
原理:随机抽出数组里面的一个元素与最后一个元素换位置,直到排序完成(每次数组长度减一,到数组长度为空截止)。
注意:这题很大程度上,是手写提,大家尽量理解其中的意思,然后记忆。加油,打工人!