码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript 排序算法(转)

时间:2018-10-10 17:08:18      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:script   rar   return   .com   ram   element   length   ret   拆分   

// 快速排序
class QuickSort {
/** * @param {*[]} originalArray * @return {*[]} */ Sort(originalArray) { // 复制 originalArray 数组防止它被修改 const array = [...originalArray]; // 如果 originalArray 数组元素个数 <=1,就不需要排序了,直接返回 if (array.length <= 1) { return array; } // 初始化左数组和右数组 const leftArray = []; const rightArray = []; // 取出 originalArray 数组中的第一个元素作为中间比较值 const pivotElement = array.shift(); const centerArray = [pivotElement]; // 把 originalArray 数组拆分成左、中、右三个数组 while (array.length) { const currentElement = array.shift(); if (currentElement == pivotElement) { centerArray.push(currentElement); } else if (currentElement < pivotElement) { leftArray.push(currentElement); } else { rightArray.push(currentElement); } } // 递归对左、右数组进行排序 const leftArraySorted = this.Sort(leftArray); const rightArraySorted = this.Sort(rightArray); // 最后把排好序的左、中、右数组拼接起来,并返回 return leftArraySorted.concat(centerArray, rightArraySorted); } }

原文地址:https://github.com/trekhleb/javascript-algorithms

Javascript 排序算法(转)

标签:script   rar   return   .com   ram   element   length   ret   拆分   

原文地址:https://www.cnblogs.com/hellowzl/p/9767122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!