javascript 快速排序

今天写bug 2023-04-28 13:53:25

快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列。

实现步骤:

  • 选择一个基准元素target(一般选择第一个数)
  • 将比target小的元素移动到数组左边,比target大的元素移动到数组右边
  • 分别对target左侧和右侧的元素进行快速排序
//JS自带的sort()就是快排
function quickSort(array, start, end) {
      if (end - start < 1) {
        return;
      }
      const target = array[start];
      let l = start;
      let r = end;
      while (l < r) {
        while (l < r && array[r] >= target) {
          r--;
        }
        array[l] = array[r];
        while (l < r && array[l] < target) {
          l++;
        }
        array[r] = array[l];
      }
      array[l] = target;
      quickSort(array, start, l - 1);
      quickSort(array, l + 1, end);
      return array;
    }
...全文
224 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

25,466

社区成员

发帖
与我相关
我的任务
社区描述
欢迎加入鱼找水(一起学编程)社区,知识从未如此性感,学习从未如此快乐。社区活动丰富更有众多CSDN定制周边礼物,欢迎更多志同道合 爱学习 爱交流的朋友入驻社区,助您遨游在编程的海洋中!
后端前端框架服务器 个人社区 北京·海淀区
社区管理员
  • 鱼找水需要时间
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎各位加入【一起学编程】社区,本社区旨在为大家营造一个良好的学习技术沟通平台。

【在这里你可以干什么】

如果你有不能解决的编程问题,欢迎在此处提问:问题求助

如果你在接触前沿的技术,欢迎在此处分享:交流讨论

如果你目前在学习软件编程知识,欢迎在此处打卡:学习打卡

如果你想了解最近的CSDN活动,请看此处:社区活动

如果看到写的非常好的博客,欢迎此处收录:博文收录

【我们的愿景是什么】

没有学不会的东西,问题在于你肯不肯学。遇到不懂的知识点 前沿的技术,希望我们都能有一颗求知的心,乐于分享 互相督促学习。我们因CSDN这个大平台而相聚在这里,就像一条条离开水的鱼,希望在这里能够遨游在知识的海洋里。你我共勉

试试用AI创作助手写篇文章吧