我的网站开发技术经验总结 我的网站开发技术经验总结
首页

fangdown

我的网站开发技术经验总结
首页
  • 大前端

  • 基础

  • 框架

  • 情商

  • 算法

    • 说说对二分查找的理解
    • 说说对动态规划、分而治之的理解
    • 说说对图的理解
    • 说说对堆的理解
    • 说说对归并排序的理解
    • 说说对快速排序的理解
      • 是什么
        • 思想
      • 怎么用
        • 时间复杂度O(nlogn), 稳定
      • 场景
    • 说说对插入排序的理解
    • 说说对数据结构的理解
    • 说说对栈、队列的理解及应用
    • 说说对树(二叉树)的理解
    • 说说对算法的理解及应用场景
    • 说说对贪心算法,回溯算法的理解
    • 说说对选择排序的理解
    • 说说有哪些排序算法及理解
    • 说说算法复杂度有哪些?
    • 说说对冒泡排序的理解
  • 网络

  • 千锤百炼
  • 算法
fangdown
2021-10-20
目录

说说对快速排序的理解

# 是什么

快速排序: 是快、效率高,是处理大数据最快的排序算法之一

# 思想

  • 找到第一个元素
  • 遍历数组, 比它小的放左边,大的放右侧
  • 递归遍历
  • 放回结果

# 怎么用

function kuaipai(arr) {
  const sort = (arr) => {
    if (arr.length < 2) return arr;
    const left = [];
    const right = [];
    const mid = arr[0];
    for (let i = 1; i < arr.length; i++) {
      if (arr[i] < mid) {
        left.push(arr[i]);
      } else {
        right.push(arr[i]);
      }
    }
    return [...sort(left), mid, ...sort(right)];
  };
  return sort(arr);
}

const arr = [1, 19, 2, 5, 99, 23];
const res = kuaipai(arr);
console.log(res); //[ 1, 2, 5, 19, 23, 99 ]


# 时间复杂度O(nlogn), 稳定

# 场景

是目前基于比较的内部排序中被认为最好的方法,当数据过大且数据杂乱无章时,则适合采用快速排序

#算法
上次更新: 2021/12/19, 18:05:42
说说对归并排序的理解
说说对插入排序的理解

← 说说对归并排序的理解 说说对插入排序的理解→

最近更新
01
多分支修复撞车的问题
05-01
02
如何成为架构师
01-23
03
服务器部署全过程
11-23
更多文章>
Theme by Vdoing | Copyright © 2019-2026 fangdown | 粤ICP备19079809号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式