快速排序

来源:互联网 发布:亚马逊aws 知乎 编辑:程序博客网 时间:2024/06/10 18:22

一、定义

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

二、基本思想

  • 在数据集之中,选择一个元素作为”基准”(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));}
原创粉丝点击