zoukankan      html  css  js  c++  java
  • 前端排序算法

    快速排序的思路:

    1、选择数组中间数作为基数,并从数组中取出此基数;

    2、准备两个数组容器,遍历数组,逐个与基数比对,较小的放左边容器,较大的放右边容器;

    3、递归处理两个容器的元素,并将处理后的数据与基数按大小合并成一个数组,返回。
     
    代码实现:
    let  arr = [85, 24, 63, 45, 17, 31, 96, 50]
    function quickSort (arr) {
        if (arr.length <= 1) { return arr; }
      var pivotIndex= Math.floor(arr.length / 2)
      var pivot = arr.splice(pivotIndex, 1)[0];
      var left = [];
      var right = [];
      for (let index = 0; index < arr.length; index++) {
           if (arr[index]< pivot) {
               left.push(arr[index])
           } else {
               right.push(arr[index])
           }
      }
      return quickSort(left).concat([pivot], quickSort(right))
    
    }
    console.log(quickSort (arr))

    选择数组中间数作为基数,并从数组中取出此基数;

      var pivotIndex= Math.floor(arr.length / 2)
      var pivot = arr.splice(pivotIndex, 1)[0];

    准备两个数组容器,遍历数组,逐个与基数比对,较小的放左边容器,较大的放右边容器

      var left = [];
      var right = [];
      for (let index = 0; index < arr.length; index++) {
           if (arr[index]< pivot) {
               left.push(arr[index])
           } else {
               right.push(arr[index])
           }
      }

    递归处理两个容器的元素,并将处理后的数据与基数按大小合并成一个数组,返回

    return quickSort(left).concat([pivot], quickSort(right))

    git 地址:  https://gitee.com/guangzhou110/front-end-sorting-algorithm

     
     
     
    越努力越幸运
  • 相关阅读:
    221. 最大正方形
    9. 回文数
    2. 两数相加
    1. 两数之和
    HDU 1864 最大报销额
    47 java包打成本地maven
    46 数组中的元素进行位置交换
    5 docker安装kibana
    45 vue图片放大预览
    4 docker中安装es
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/14495265.html
Copyright © 2011-2022 走看看