javascript快速排序算法详解

 更新时间:2014年09月17日 11:42:51   投稿:hebedich  
JavaScript实现的常见排序算法有:冒泡排序,选择排序,插入排序,谢尔排序,快速排序(递归),快速排序(堆栈),归并排序,堆排序。今天我们来详细分析下快速排序算法

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

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

相关文章

  • JavaScript中两种链式调用实现代码

    JavaScript中两种链式调用实现代码

    方法链一般适合对一个对象进行连续操作(集中在一句代码)。一定程度上可以减少代码量,缺点是它占用了函数的返回值。
    2011-01-01
  • JavaScript制作页面倒计时器的实现

    JavaScript制作页面倒计时器的实现

    这篇文章主要为大家详细介绍了JavaScript制作页面倒计时器的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 基于js中的存储键值对以及注意事项介绍

    基于js中的存储键值对以及注意事项介绍

    下面小编就为大家介绍一下基于js中的存储键值对以及注意事项。希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 前端printjs的使用实战案例

    前端printjs的使用实战案例

    Print.js是一个小的javascript库,可帮助您从网络上打印,这篇文章主要给大家介绍了关于前端printjs的使用实战案例,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • 鼠标拖动改变DIV等网页元素的大小的实现方法

    鼠标拖动改变DIV等网页元素的大小的实现方法

    下面小编就为大家带来一篇鼠标拖动改变DIV等网页元素的大小的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • JavaScript中判断函数是new还是()调用的区别说明

    JavaScript中判断函数是new还是()调用的区别说明

    具名函数的各种调用方式 在之前篇幅中已经介绍过了。这篇看看如何判断一个函数是被new调用的,还是被其它方式调用的。
    2011-04-04
  • 详解JavaScript中的数据类型转换

    详解JavaScript中的数据类型转换

    在JavaScript中,数据类型的转换是一项常见的任务,不同的数据类型之间需要相互转换以满足程序的需求,本篇博客将深入探讨JavaScript中的数据类型转换,包括隐式转换和显式转换的概念、转换规则和常见的数据类型转换示例
    2023-06-06
  • 微信小程序自定义日期选择器

    微信小程序自定义日期选择器

    这篇文章主要为大家详细介绍了微信小程序自定义日期选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<BR>
    2022-01-01
  • js图片查看器插件用法示例

    js图片查看器插件用法示例

    这篇文章主要介绍了js图片查看器插件用法,结合实例形式分析了图片查看器插件viewer.js简单使用技巧,需要的朋友可以参考下
    2019-06-06
  • js实现七夕表白弹幕效果 jQuery实现弹幕技术

    js实现七夕表白弹幕效果 jQuery实现弹幕技术

    这篇文章主要介绍了js实现七夕表白弹幕效果,jQuery实现弹幕技术,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论