文章来自:源码在线https://www.shengli.me/javascript/481.html
顾名思义,数组乱序就是把数组存储的值的顺序都打乱。
著名的洗牌算法,原理就是遍历数组元素,将当前元素与随机抽取的一个剩余元素进行交换。
下列表格遍历元素是从后往前:
随机数范围 | 随机数 | 原始数据 | 结果 |
---|---|---|---|
1 2 3 4 5 6 | |||
[ 0 , 5 ] | 1 | 1 6 3 4 5 | 2 |
[ 0 , 4 ] | 3 | 1 6 3 5 | 4 2 |
[ 0 , 3 ] | 1 | 1 5 3 | 6 4 2 |
[ 0 , 2 ] | 2 | 1 5 | 3 6 4 2 |
[ 0 , 1 ] | 1 | 1 | 5 3 6 4 2 |
[ 0 , 0 ] | 0 | 1 5 3 6 4 2 |
代码:
测试:
固定一个值
在乱序的同时,固定一个下标的值,使其位置不变
测试一下: