javascript快速排序算法详解

2019-12-21,,,,

"快速排序"的思想很简单,整个排序过程只需要三步:

  (1)在数据集之中,找一个基准点

  (2)建立两个数组,分别存储左边和右边的数组

  (3)利用递归进行下次比较

看一个demo:http://jsdo.it/norahiko/oxIy/fullscreen(网页打开可能较慢,慢慢等待吧)

<script type="text/javascript"> 

function quickSort(arr){
  if(arr.length<=1){
    return arr;//如果数组只有一个数,就直接返回;
  }

  var num = Math.floor(arr.length/2);//找到中间数的索引值,如果是浮点数,则向下取整
  var numValue = arr.splice(num,1);//找到中间数的值
  var left = [];
  var right = [];

  for(var i=0;i<arr.length;i++){
    if(arr[i]<numValue){
      left.push(arr[i]);//基准点的左边的数传到左边数组
    }
    else{
      right.push(arr[i]);//基准点的右边的数传到右边数组
    }
  }
 return quickSort(left).concat([numValue],quickSort(right));//递归不断重复比较
}
alert(quickSort([32,45,37,16,2,87]));//弹出“2,16,32,37,45,87”

</script>

您可能感兴趣的文章:

  • js交换排序 冒泡排序算法(Javascript版)
  • 几种经典排序算法的JS实现方法
  • Javascript中的常见排序算法
  • js三种排序算法分享
  • Javascript排序算法之合并排序(归并排序)的2个例子
  • JavaScript中几种常见排序算法小结
  • JavaScript实现经典排序算法之选择排序
  • js的各种排序算法实现(总结)
  • JavaScript中的排序算法代码
  • JavaScript实现的九种排序算法

《javascript快速排序算法详解.doc》

下载本文的Word格式文档,以方便收藏与打印。