快速排序算法总结

快速排序算法的思想,实际上就是一个递归函数。

如果元素个数小于两个,则直接返回这个数组,否则,选择一个值,然后依据这个值,将数组分成数组,两个数组的元素分别小于这个值和大于这个值。然后对两个数组递归排序。

快速排序算法关键词: 数组小于两个元素,则直接返回,否则拆分再递归

代码:

const array =  [1,223,21,11,23,124,213,1241,1,1,1,2,45,2123,5,677,2,2,6,84,75,9,0,-123,2,8];

function quickSort(array){
  if(array.length<2){
    return array;
  }
  let flag = array[0];
  let left = [];
  let right = [];
  for(let i = 1;i<array.length;i++){
    if(array[i]<flag){
      left.push(array[i]);
    }else{
      right.push(array[i])
    }
  }
  return quickSort(left).concat([flag]).concat(quickSort(right));
}
console.log(quickSort(array));
posted @ 2020-03-16 17:01  于鹏的博客  阅读(158)  评论(0)    收藏  举报