算法基礎之最簡潔的代碼實現快速排序

背景
面試的時候,大廠一般都會有算法面試。在這之中, 快排可以說是比較高頻了。嚴格一點的面試官,都會要求用記事本寫一個可以立即運行的快排程序。一般,如果時間充裕,大家是都能夠寫出來的,然而往往面試官不會給你留那麼多的時間。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)];
   }

怎麼樣,簡單吧,當然這是有點投機的意思哈,如果大家有能力,還是希望大家用非遞歸的方式實現快排,畢竟那樣比較考驗一個人的邏輯思維能力。。。那也是面試官最希望得到的答案。 本篇只是提供了臨場發揮有困難的時候,大家可以借鑑的招數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章