• JavaScript快速排序


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

    • 在数据集之中,选择一个元素作为"基准"(pivot)。
    • 所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。
    • 对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。

    函数实现:

    var quickSort = function(arr) {   //定义一个quickSort的函数;

      if (arr.length <= 1) { return arr; }   //判断数组的长度,小于1,返回;

      var pivotIndex = Math.floor(arr.length / 2);  // 选择一个“基准”pivot,最接近中间的整数

      var pivot = arr.splice(pivotIndex, 1)[0];  //取出“基准”,splice返回是一个数组。这边取出来只有一个数值的数组,要取出数值,而不是数组,因此是Array [0](数组的第一个数字也是唯一的一个数字)

      var left = [];  //定义存放左边数值的空数组

      var right = [];  //定义存放右边数值的空数组

      for (var i = 0; i < arr.length; i++){  //遍历数组

        if (arr[i] < pivot) {    //判断数组中的数值和“基准”的大小

          left.push(arr[i]);  //将小于“基准”数值的数值放入用于存放左边数值的空数组中

        } else {

          right.push(arr[i]);  //否则放入于用于存放右边数值的空数组中

        }

      }

      return quickSort(left).concat([pivot], quickSort(right));  //递归调用

    };

    使用:

     直接调用quickSort();

    例如:

  • 相关阅读:
    .NET Worker Service 如何优雅退出
    .NET 中的 Worker Service 入门介绍
    一图看懂 ASP.NET Core 中的服务生命周期
    创建支持依赖注入、Serilog 日志和 AppSettings 的 .NET 5 控制台应用
    Asp.Net Core 5 REST API 使用 RefreshToken 刷新 JWT
    Asp.Net Core 5 REST API 使用 JWT 身份验证
    Asp.Net Core 5 REST API
    JWT 介绍
    在 .NET Core 5 中集成 Create React app
    在 .NET Core 中构建 REST API
  • 原文地址:https://www.cnblogs.com/caiyc/p/7458672.html
Copyright © 2020-2023  润新知