用ChatGPT写一个快速排序

简介: 用ChatGPT写一个快速排序

快速排序是一种常用的排序算法,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序是一种不稳定的排序算法。


下面是快速排序的基本步骤:


  1. 选择一个基准元素,通常选择第一个元素或者最后一个元素。
  2. 通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素。
  3. 此时基准元素在其排好序后的正确位置。
  4. 然后分别对这两部分数据进行快速排序,整个排序过程可以递归进行,以此达到整个序列变成有序序列。


下面是一个快速排序的例子:


假设要排序的数组为:[6, 1, 2, 7, 9, 3, 4, 5, 10, 8]


  1. 选择第一个元素作为基准元素,即6。
  2. 从序列的第二个元素开始遍历


#include <iostream>
#include <vector>
using namespace std;
// 快速排序函数,arr为要排序的数组,p、r为要排序的序列的起始和结束下标
void quickSort(vector<int>& arr, int p, int r) {
    // 如果序列长度大于1,则进行排序
    if (p < r) {
        // 将序列分为两部分
        int q = partition(arr, p, r);
        // 对两部分分别进行快速排序
        quickSort(arr, p, q - 1);
        quickSort(arr, q + 1, r);
    }
}
int main() {
    // 创建要排序的数组
    vector<int> arr = {6, 1, 2, 7, 9, 3, 4, 5, 10, 8};
    // 执行快速排序
    quickSort(arr, 0, arr.size() - 1);
    // 输出排序后的数组
    for (auto a : arr) {
        cout << a << " ";
    }
    return 0;
}


上面代码中,快速排序函数quickSort实现了快速排序的基本步骤,递归地将序列划分为两部分,并对两部分进行快速排序。在quickSort函数中,还调用了一个名为partition的函数,它的作用是将序列分为两部分,其代码如下:


```cpp // 将序列arr[p...r]划分为两部分,返回基准元素的下标 int partition(vector& arr, int p, int r) { // 选择第一个元素作为基准元素 int pivot = arr[p]; int i = p; for (int j = p + 1; j <= r; j++) {  


e4bc35084d5945078868a4bb2dc9c431.png

相关文章
|
3天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
2天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
2天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
5天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
564 2
|
3天前
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
843 4
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
kde
|
5天前
|
人工智能 关系型数据库 PostgreSQL
n8n Docker 部署手册
n8n是一款开源工作流自动化平台,支持低代码与可编程模式,集成400+服务节点,原生支持AI与API连接,可自托管部署,助力团队构建安全高效的自动化流程。
kde
386 3
|
5天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
本文介绍RAG(检索增强生成)技术,结合Spring AI与本地及云知识库实现学术分析AI应用,利用阿里云Qwen-Plus模型提升回答准确性与可信度。
274 91
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践