写个js的排序算法(快速排序算法)

由人工智能ChatGPT生成的快速排序算法中,数组会不断被划分为更小的子数组,直到每个子数组都只包含一个元素为止。每个子数组都会被排序,然后再合并为一个有序的整体

这是一个通用的 JavaScript 排序算法。它使用的是快速排序算法。

function sort(arr) {
  if (arr.length <= 1) {
    return arr;
  }

  const pivot = arr[arr.length - 1];
  const left = [];
  const right = [];

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

  return [...sort(left), pivot, ...sort(right)];
}

如果要使用这个排序函数,可以这样调用它:

const arr = [3, 5, 1, 8, 9, 2];
const sorted = sort(arr);
console.log(sorted);  // [1, 2, 3, 5, 8, 9]

在这个算法中,数组会不断被划分为更小的子数组,直到每个子数组都只包含一个元素为止。每个子数组都会被排序,然后再合并为一个有序的整体。

请注意,快速排序算法的时间复杂度为 O(n * log n),因此它在大多数情况下都是一个非常高效的排序算法。但是,在某些情况下,它可能会运行得非常慢,因此需要根据实际情况进行选择。

oepnai生成的快速排序算法

除特别声明外, 本站所有内容皆为原创,未经许可,禁止转载。转载时请务必以超链接形式标明文章出处和作者信息
  • 451
(0)
打赏 微信扫一扫 微信扫一扫

关于作者:

web前端老罗

贡献:已经在WEB前端圈发表89篇文章了,你也来试试

简介:前端老罗是一位拥有多年web前端开发经验、管理经验、教学经验的实战派全栈工程师。目前在某名企任职WEB前端技术教官。加我微信:imqdcnn可提供开发、技术咨询、答疑、直播讲座等服务

Ta的专栏 | Ta的站点 | 其他SNS

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关于WEB前端圈

我是前端人(imqd.cn)愿景是不管你是想学习前端还是一名专业的WEB前端工程师在这里都能找到你想要的物料。定位为前端人学习进步的一个平台。在这里你能找到前端学习笔记、教学视频资源、案例、前后端分离、前端框架、低代码平台、可视化数据、多端开发、全栈开发等跟前端有关的一切资源!

关于站长:WEB前端老罗(罗老师)是一位拥有多年web前端开发经验、管理经验、IT培训教学经验的实战派全栈工程师。目前在某名企任职WEB前端技术教官。右边加我微信可提供开发、技术咨询、答疑、直播讲座等服务

WEB前端圈二维码

右边添加老罗微信一对一免费私聊
拉你加入官方微信答疑群

To top