1、
function xipai(arr){
let result=[];
let random;
while(arr.length>0){
random=Math.floor(Math.random()*arr.length);
result.push(arr[random]);
arr.splice(random,1);
}
return result;
}
事件复杂度o(n*n);
2、
function xipai(arr){
let length=arr.length;
let random;
let temp;
while(length!=0){
random=Math.floor(Math.random()*length);
length--;
temp=arr[length];
arr[length]=arr[random];
arr[random]=temp;
}
return arr;
}
事件复杂度o(n);
3、ES6
function xipai(arr){
if(arr.length==0) return [];
let length=arr.length;
let random;
while(length!=0){
random=Math.floor(Math.random()*length--);
[arr[random],arr[length]]=[arr[length],arr[random]];
}
return arr;
}
>>>无符号移位
参考链接:
https://segmentfault.com/a/1190000014613703