手寫一個簡單的排序

今天偶然間看到一個大佬寫的排序,所以就自己動手寫看看。

直入主題:


function sortArr(arr =[]) {
if (arr.length < 2) return arr;
const point = arr[arr.length-1]
const left = arr.filter((v,i) => v <=point && i !== arr.length -1)
const right = arr.filter(v => v >point )
return [...sortArr(left), point, ...sortArr(right)]
}
sortArr([1, 10, 100, 9, 28, 99, 7, 77, 88, 10, 100, 9])
// (12) [1, 7, 9, 9, 10, 10, 28, 77, 88, 99, 100, 100]

思路就是:

找到最后一個數(shù),然后依次和他進行對比。比他小的放在左邊,比他大的放在右邊,然后再把左邊 + 中間 + 右邊 = 排序后的arr
圖解的話,是這樣的(盜圖一張)

WX20190911-205803@2x.png

參考(或者說是學習源)鏈接是:

https://juejin.im/post/5d75b4d45188250c992d5919

記錄一下。

attention

后面我自己調用了一下這個方法,不可行,有性能問題。如果數(shù)組length太大,這個方法花費的時間太長,效率不高。因為filter其實也很耗時的。如果是數(shù)字的話,可能sort方法都比我上面寫那個好使。哈哈哈哈。

一個對算法和鏈表不清不楚的小白,自娛自樂,自己推翻自己。好玩。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • import java.util.Arrays; public class SortTest { public s...
    夏與清風閱讀 696評論 0 1
  • 排序算法概念 排序也稱排序算法?(Sort Algorithm),排序是將一?組數(shù)據(jù),依指定的順序進行排列?的過程...
    先生zeng閱讀 542評論 0 1
  • 本文是lhyt本人原創(chuàng),希望用通俗易懂的方法來理解一些細節(jié)和難點。轉載時請注明出處。文章最早出現(xiàn)于本人github...
    lhyt閱讀 310評論 0 0
  • 上節(jié)課我們學了這樣的一個結構(這個結構也是在我們實際開發(fā)時經(jīng)常使用的異步請求方式,當我們有些業(yè)務比較耗時的時候,我...
    在路上phper閱讀 2,746評論 0 0
  • 我的童年,似乎比較絢麗多彩。兒時的我與現(xiàn)在的性格截然相反,是個男孩子氣的小女生,活潑好動,霸道任性,愛玩耍愛鬧騰,...
    圓圓哎咿呀閱讀 347評論 4 1

友情鏈接更多精彩內容