背景
面试的时候,大厂一般都会有算法面试。在这之中, 快排可以说是比较高频了。严格一点的面试官,都会要求用记事本写一个可以立即运行的快排程序。一般,如果时间充裕,大家是都能够写出来的,然而往往面试官不会给你留那么多的时间。10分钟没写出来,基本就下一题了,可以说压力非常大了,这就像一只拦路虎,挡住了大家进入大厂的梦想。接下来,我将为大家介绍最简洁的快排写法,帮助大家在规定时间,甚至于低于规定时间,写出符合面试官要求的排序算法。
function quickSort(arr=[]){
if(arr.length <=1){
return arr;
}
let arrLow = [];
let arrHigh = [];
// 对数组进行遍历,将快排的思想写出来
for(let m = 1; m < arr.length;m++){
if(arr[m] > arr[0]){
arrHigh.push(arr[m]);
} else {
arrLow.push(arr[m]);
}
}
return [...quickSort(arrLow), arr[0], ...quickSort(arrHigh)];
}
怎么样,简单吧,当然这是有点投机的意思哈,如果大家有能力,还是希望大家用非递归的方式实现快排,毕竟那样比较考验一个人的逻辑思维能力。。。那也是面试官最希望得到的答案。 本篇只是提供了临场发挥有困难的时候,大家可以借鉴的招数。