快速排序的js递归实现
2017-10-09 14:18
519 查看
快速排序的实现思路就是每次以一个基数作为比较对象,把其他所有小于基数的值放到一边,剩余的放置另一边,两边继续递归之前的步骤 。
时间复杂度为O(nlogn)
//快速排序,array为数组
var quickSort = function(array) {
var left = [],
right = [],
//基准数
base;
if (array && array.length <= 1 ) {
return array;
}
base = array[0];
array = array.slice(1);
//除基准数外遍历放置到左右边
array.forEach(function(item) {
if (item < base) {
left.push(item);
} else {
right.push(item);
}
})
return quickSort(left).concat(base,quickSort(right));
}
时间复杂度为O(nlogn)
//快速排序,array为数组
var quickSort = function(array) {
var left = [],
right = [],
//基准数
base;
if (array && array.length <= 1 ) {
return array;
}
base = array[0];
array = array.slice(1);
//除基准数外遍历放置到左右边
array.forEach(function(item) {
if (item < base) {
left.push(item);
} else {
right.push(item);
}
})
return quickSort(left).concat(base,quickSort(right));
}
相关文章推荐
- 快速排序递归与非递归代码实现与思考
- java实现快速排序-递归
- php使用递归与迭代实现快速排序示例
- 快速排序非递归实现
- 快速排序的递归和非递归实现
- 递归实现快速排序
- 快速排序、冒泡排序、堆排序、shell排序的递归和非递归实现
- 快速排序的递归实现
- 快速排序的递归实现
- C/C++面试题(三) 推断二叉树、快速排序递归实现、递归判断数组递增
- 快速排序的两重递归实现
- Python递归实现快速排序
- 快速排序的递归和非递归实现 -----C++、JAVA代码实现
- JS实现快速排序
- 快速排序非递归实现
- (转的!)快速排序的递归与非递归实现。
- 快速排序的递归和非递归实现
- java 递归实现快速排序
- 快速排序非递归c#实现
- 快速排序的递归实现。 分治法。