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 ])