该浏览器不支持canvas

用JavaScript实现快排

啥是快排这里就不讲了,主要还是把原来c++学的东西抓紧转化过来

快排运用的是分而治之的思想,确定一个中值,把大的放右边,小的放左边,然后再左右分别对左右的左右(雾)进行处理

需要注意的一点是,这玩意远没有sort函数跑的快

function quickSort(arr){
  if(arr.length <= 1){
    return arr;
  }
  let l = [], r = [];
  let mid = Math.round(arr.length / 2);
  for(let i = 0; i < arr.length; i++){
    if(i == mid){
      continue;
    }else if(arr[mid] >= arr[i]){
      l.push(arr[i]);
    }else if(arr[mid] < arr[i]){
      r.push(arr[i])
    }
  }
  return quickSort(l).concat(arr[mid],quickSort(r));
}
console.log(quickSort([8,3,2,5,4,1]));//[1, 2, 3, 4, 5, 8]
posted @ 2019-07-22 14:27  真是啰嗦  阅读(993)  评论(0)    收藏  举报