zoukankan      html  css  js  c++  java
  • JavaScript 排序算法——快速排序

    常见排序


    javaScript 实现的常见排序算法有:冒泡排序、选择排序、插入排序、谢尔排序、快速排序(递归)、快速排序(堆栈)、归并排序、堆排序。

     

    过程


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

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

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

        3、利用递归进行下次比较

     

    代码例子

     1 <script type="text/javascript">
     2     function quickSort(arr){
     3         if(arr.length<=1){
     4             return arr;//如果数组只有一个数,就直接返回;
     5         }
     6 
     7         var num = Math.floor(arr.length/2);//找到中间数的索引值,如果是浮点数,则向下取整
     8         var numValue = arr.splice(num,1);//找到中间数的值
     9         var left = [];
    10         var right = [];
    11 
    12         for(var i=0;i<arr.length;i++){
    13             if(arr[i]<numValue){
    14                 left.push(arr[i]);//基准点的左边的数传到左边数组
    15             }
    16             else{
    17                 right.push(arr[i]);//基准点的右边的数传到右边数组
    18             }
    19         }
    20         return quickSort(left).concat([numValue],quickSort(right));//递归不断重复比较
    21     }
    22     
    23     alert(quickSort([32,45,37,16,2,87]));//弹出“2,16,32,37,45,87”
    24 </script>
  • 相关阅读:
    hdu1403(后缀数组模板)
    输入外挂模板
    hdu2896(ac自动机)
    hdu2222(ac自动机模板)
    codevs1169, 51nod1084(多线程dp)
    codevs3027(dp)
    codevs1068(dp)
    大数乘法模板
    Java锁--框架
    Java并发包--ConcurrentLinkedQueue
  • 原文地址:https://www.cnblogs.com/zhoubang521/p/5200072.html
Copyright © 2011-2022 走看看