【JS】前端面试题之JS排序

前端面试" title="前端面试">前端面试题" title="前端面试题">前端面试题之JS排序

【JS】前端面试题之JS排序

快速排序

采用阮一峰的排序,简单易懂,虽然不是最正规的
原理:随便选一个数,把原数组里比这个数小的放左边,比这个数大的放右边,然后再把左边和右边的数组重复上面的操作,最后完成排序

functionquickSort(arr){

if(arr.length <=1){

return arr;

}

var midI = Math.floor((arr.length-1)/2);//随便取了个数,这里拿了中间的index

var mid = arr.splice(midI,1)[0];//拿到中间的数,同时把原数组这个数删掉

var left =[];//用来存放比这个数小的数组

var right =[];//用来存放比这个数大的数组

for(var i =0; i < arr.length; i++){//循环原数组,把数放进数组里

if(arr[i]< mid){

left.push(arr[i])

}else{

right.push(arr[i])

}

}

returnquickSort(left).concat([mid],quickSort(right))//递归排序

}

console.log(quickSort([131,6,2,4,12,52,31,42,51,424,13213]));//[2, 4, 6, 12, 31, 42, 51, 52, 131, 424, 13213]

以上是 【JS】前端面试题之JS排序 的全部内容, 来源链接: utcz.com/a/67374.html

回到顶部