背景
面試的時候,大廠一般都會有算法面試。在這之中, 快排可以說是比較高頻了。嚴格一點的面試官,都會要求用記事本寫一個可以立即運行的快排程序。一般,如果時間充裕,大家是都能夠寫出來的,然而往往面試官不會給你留那麼多的時間。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)];
}
怎麼樣,簡單吧,當然這是有點投機的意思哈,如果大家有能力,還是希望大家用非遞歸的方式實現快排,畢竟那樣比較考驗一個人的邏輯思維能力。。。那也是面試官最希望得到的答案。 本篇只是提供了臨場發揮有困難的時候,大家可以借鑑的招數。