JavaScript 快速排序算法详解

作者:函数茶馆

时间:2026-10-28

浏览:568

本文详解 JavaScript 中快速排序的实现原理与代码。通过选取基准点、左右分区及递归比较三步完成排序,提供完整可运行示例,帮助开发者理解分治策略在数组排序中的应用。

文章目录

快速排序原理与步骤

快速排序的核心思想非常直观,整个排序过程主要包含三个关键步骤:

第一步,从数据集中选取一个元素作为基准点。

第二步,创建两个数组,分别用于存储小于和大于基准点的元素。

第三步,利用递归函数对左右两个子数组继续进行排序比较。

具体实现可参考以下演示:http://jsdo.it/norahiko/oxIy/fullscreen(网页打开可能较慢,请耐心等待加载)

JavaScript 代码实现


<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>

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章