js-排序

一、快速排序
定一個(gè)基準(zhǔn),把小于基準(zhǔn)的放在左邊,大于基準(zhǔn)的放在右邊。如此循環(huán),直到有序。
var quickSort = function(arr){
if (arr.length<=1){
return arr;
}
var pivotIndex = Math.floor(arr.length/2);//找到中心點(diǎn)
var pivot = arr.splice(pivotIndex,1)[0];//獲取基準(zhǔn)點(diǎn)
var left= [];//定義左邊數(shù)組
var right= [];//定義右邊數(shù)組
for(var i=0;i<arr.length;i++){
if(arr[i]<pivot){
left.push(arr[i]);//小于基準(zhǔn)點(diǎn)的放在左邊
}else{
right.push(arr[i]);//大于基準(zhǔn)點(diǎn)的放在右邊
}
}
return quickSort(left).concat([pivot],quickSort(right));//使用遞歸重復(fù)這個(gè)過程
};

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

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,916評論 0 33
  • 某次二面時(shí),面試官問起Js排序問題,吾絞盡腦汁回答了幾種,深感算法有很大的問題,所以總計(jì)一下! 排序算法說明 (1...
    流浪的先知閱讀 1,252評論 0 4
  • 說明 時(shí)間復(fù)雜度指的是一個(gè)算法執(zhí)行所耗費(fèi)的時(shí)間 空間復(fù)雜度指運(yùn)行完一個(gè)程序所需內(nèi)存的大小 穩(wěn)定指,如果a=b,a在...
    BlueBeginner閱讀 810評論 0 9
  • 代碼雖源自抄襲,自己重寫時(shí)改了一下變量名,消化更好了_ 冒泡排序(Bubble Sort) 1. 算法步驟 比較相...
    _july77閱讀 210評論 0 0
  • 讀書要讀什么:第一,作者的洞見,第二,作者提供的技能點(diǎn)。 為了寫作而進(jìn)行的閱讀有兩種: 第一種:讀內(nèi)容,目的是建立...
    米小慧閱讀 460評論 0 0

友情鏈接更多精彩內(nèi)容