您的位置:首页 > 其它

快速排序

2017-09-06 11:59 162 查看
一、定义

快速排序也是采用分而治之的算法,通过递归的方式将所有数据分解为包含较小元素和较大元素的不同子序列。不断重复直到所有数据都是有序。

二、基本思想

在数据集之中,选择一个元素作为”基准”(pivot)。

所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。

对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。

三、图解



四、代码实现

function quickSort(arr){
if (arr.length <= 1) { return arr; }
var pivot = arr[0];
var lesser = [];
var greater = [];
for(var i = 1;i < arr.length ; i++){
if(arr[i] < pivot){
lesser.push(arr[i])
}else{
greater.push(arr[i])
}
}

return quickSort(lesser).concat([pivot], quickSort(greater));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: