c++快速排序算法怎么使用

快速排序(QuickSort)是一种常用的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分小,然后再按此方法分别对这两部分数据进行快速排序,整个过程递归进行,最终得到有序的数据序列。以下是使用C++实现快速排序算法的示例代码:#includeusing namespace std;// 交换数组中两个元素的位置void

快速排序(QuickSort)是一种常用的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分小,然后再按此方法分别对这两部分数据进行快速排序,整个过程递归进行,最终得到有序的数据序列。

以下是使用C++实现快速排序算法的示例代码:

#include<iostream>
using namespace std;

// 交换数组中两个元素的位置
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// 分割函数,以pivot为基准将数组分割成两部分
int partition(int arr[], int low, int high) {
    int pivot = arr[high];  // 选择最后一个元素作为基准
    int i = low - 1;  // i指向小于基准的元素

    for (int j = low; j <= high - 1; j++) {
        if (arr[j] < pivot) {
            i++;
            swap(&arr[i], &arr[j]);
        }
    }
    swap(&arr[i + 1], &arr[high]);
    return i + 1;
}

// 快速排序函数
void quickSort(int arr[], int low, int high) {
    if (low < high) {
        int pivot_index = partition(arr, low, high);
        quickSort(arr, low, pivot_index - 1);
        quickSort(arr, pivot_index + 1, high);
    }
}

int main() {
    int arr[] = {9, 5, 7, 2, 4, 10, 8, 1, 6, 3};
    int n = sizeof(arr) / sizeof(arr[0]);

    quickSort(arr, 0, n - 1);

    cout << "排序后的数组:";
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;

    return 0;
}

以上代码中,swap函数用于交换数组中两个元素的位置,partition函数用于将数组分割成两部分,quickSort函数用于递归地对两部分进行快速排序。

main函数中,我们定义了一个待排序的数组arr,然后调用quickSort函数对该数组进行排序。最后,输出排序后的数组。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/856475.html

(0)
派派
上一篇 2024-02-05
下一篇 2024-02-05

相关推荐

  • 网页如何制作网站(网页设计怎么制作网站)

    网页如何制作网站,网页设计怎么制作网站内容导航:网页设计与开发怎样制作网站怎样制作网页建立网站如何学习动态网页和网站制作。(没编程基础)怎么制作自己的网站或网页一、网页设计与开发怎样制作网站网站设计和开发都需要看用户要制作什么网站;网上下载一套自助建站系统来制作即可:页面可以自行修改和调整、而且网站栏目和内容都任意增减;pageadmincms、discuzcms都是比较简单的、新手

    2022-04-25
    0
  • jpa框架的功能有哪些

    JPA框架的功能主要包括:对象-关系映射(ORM):JPA框架可以将Java对象和数据库表进行映射,从而实现对象和关系数据库之间的数据转换。CRUD操作:JPA框架可以帮助开发人员进行常见的数据库操作,如增删改查。查询语言:JPA框架提供了JPQL(Java Persistence Query Language)等查询语言,可以方便地进行复杂的数据库查询。事务管理:JPA框架提供了事务管理功能,可

    2024-02-23
    0
  • 什么语言可以开发小程序(开发小程序的语言)

    什么语言可以开发小程序,开发小程序的语言 内容导航: 微信小程序开发一般是用什么语言 开发微信小程序需要学习什么编程语言 微信小程序开发用什么语言 QT上可以支持些什么语言开发程序…

    2022-08-14
    0
  • org域名是什么意思(org是什么域名)

    org域名是什么意思,org是什么域名内容导航:org域名是什么意思org是什么意思域名org域名是什么意思比如9124org是什么意思呀一、org域名是什么意思ORG域名是国际通用顶级域名,为organization缩写,适用于各类组织机构,包括非盈利团体,.ORG与.COM和.NET同是目前国际上最广泛流

    2022-05-13
    0
  • mysql lag函数不能用怎么解决

    如果您的MySQL版本不支持LAG函数,可以考虑以下几种解决方案:使用子查询:可以通过创建一个子查询来模拟LAG函数的功能。在子查询中,您可以使用变量来保存上一行的值,并将其与当前行进行比较。使用自连接:通过在查询中使用自连接,您可以将当前行与上一行进行比较,并获取所需的结果。使用窗口函数:如果您使用的是MySQL 8.0或更新版本,可以考虑使用窗口函数,如ROW_NUMBER、LEAD或LAG函

    2024-02-04
    0
  • MATLAB中怎么创建和使用脚本

    在MATLAB中,可以通过以下步骤创建和使用脚本:创建脚本:在MATLAB的编辑器中,点击“新建脚本”按钮或者在命令窗口中输入命令“edit”,然后按Enter键。在编辑器中输入MATLAB代码,可以是任意的MATLAB命令和函数。保存脚本文件,一般使用”.m”作为文件扩展名,例如”myscript.m”。运行脚本:在编辑器中点击“运行”按钮或者在命令窗口中输入脚本文件名(不包含文件扩展名),

    2024-04-24
    0

发表回复

登录后才能评论