zoukankan      html  css  js  c++  java
  • quickSort by javascript

     1 function quickSort(array, left, right) {
     2             // 当没有给出left,right参数时,为默认值
     3             var left = left || 0,
     4                 right = right || array.length - 1;
     5             if (left >= right) {
     6                 return array;
     7             }
     8             // 索引值,每次为数组的第一个元素
     9             var index = array[left];
    10             // 设置哨兵i和j
    11             var i = left,
    12                 j = right;
    13             // 当两个哨兵未相遇时,进行后续处理
    14             while (i != j) {
    15                 // 先让哨兵j开始向左跑动,直到找到比索引值小的数
    16                 while (array[j] >= index && i < j) {
    17                     j--;
    18                 }
    19                 // 再让哨兵i向右跑动,直到找到比索引值大的数
    20                 while (array[i] <= index && i < j) {
    21                     i++;
    22                 }
    23                 // 当哨兵i还在哨兵j左边时,将其进行交换
    24                 if (i < j) {
    25                     var t = array[i];
    26                     array[i] = array[j];
    27                     array[j] = t;
    28                 }
    29             }
    30             // 当哨兵i和j相遇时,将索引值和哨兵进行交换
    31             array[left] = array[i];
    32             array[i] = index;
    33             // 递归调用,再去处理索引值左边部分和右边部分
    34             return quickSort(array, left, i - 1);
    35             return quickSort(array, i + 1, right);
    36         }

     这几天琢磨了下算法,好久没搞这东西感觉自己编程能力都退化了,就又拿出来练练了,以前都是用c去写的,现在学js就想着拿这个来实现了下。

  • 相关阅读:
    Centos7使用systemd 管理elasticsearch,创建elasticsearch服务
    nginx日志切割的2种方法
    sudo linux
    redis 重启不了
    类与对象
    用Python写一个小的购物车
    包的使用
    Python模块简介
    zookeeper & Dubbo
    迭代器 & 生成器
  • 原文地址:https://www.cnblogs.com/luxueping/p/5732193.html
Copyright © 2011-2022 走看看