手寫數(shù)組快速排序

(1)在數(shù)據(jù)集之中,選擇一個元素作為”基準(zhǔn)”。
(2)所有小于”基準(zhǔn)”的元素,都移到”基準(zhǔn)”的左邊;所有大于”基準(zhǔn)”的元素,都移到”基準(zhǔn)”的右邊。
(3)對”基準(zhǔn)”左邊和右邊的兩個子集,不斷重復(fù)第一步和第二步,直到所有子集只剩下一個元素為止。

function sort(arr) {
  if (arr.length < 2) {
    return arr;
  } else {
    var arrLeft = [];
    var arrRight = [];
    var baseIndex = Math.floor(arr.length/2);
    var base = arr.splice(baseIndex,1)[0];
    for (var i=0; i<arr.length; i++) {
      if (arr[i] < base) {
        arrLeft.push(arr[i]);
      } else {
        arrRight.push(arr[i]);
      }
    }
  }
  return sort(arrLeft).concat([base],sort(arrRight));
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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