news 2026/3/3 10:42:21

快速排序算法:c++

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
快速排序算法:c++

参考视频:

数据结构合集 - 快速排序(算法过程, 效率分析, 稳定性分析)_哔哩哔哩_bilibili

快速排序代码(C/C++实现) 细到爆炸!_哔哩哔哩_bilibili

核心:

任取一个元素作为枢轴,比枢轴大的去左边,比枢轴小的去右边,递归处理左右两边,直到空一个或者为空

题目1

6-13 数据结构考题 - 快速排序 - 划分函数

分数 25

作者 陈皓

单位 合肥师范学院

用顺序表作存储结构,输入一组数据,用快速排序法对其进行排序。

顺序表的类型描述:

#define MAXSIZE 50 // MAXSIZE为最大数据元素数目 typedef int ElemType; typedef struct { ElemType r[MAXSIZE +1]; // r[0]闲置或另作它用 int length; }SqList;

函数接口定义:

下面给出了快速排序 - 划分函数的大部分内容,但缺少了一部分(以下划线____标识出来的部分)。

请先将以下代码中画横线的部分补充完整,然后将完整的函数Partition提交系统,完成题目要求的功能。

int Partition(SqList &L,int low,int high) { int i,j; L.r[0]=L.r[____]; while ( ____ ) { while ( low<high && L.r[____]>=L.r[0] ) high--; L.r[____]=L.r[____]; while ( low<high && L.r[____]<=L.r[0] ) low++; L.r[____]=L.r[____]; } L.r [____] =L.r[0]; return low; }

int Partition(SqList &L,int low,int high)快速排序算法中,对 顺序表low ~ high范围内的元素进行划分的函数

测试主程序样例:

int main () { SqList L; int low,high; create(L); low=1; high=L.length; QuickSort(L,low,high); print(L); return 0; }

输入格式:

第一行输入一个整数n,表示顺序表的元素个数。

第二行输入原始序列的n 个整数。

输出格式:

在一行中输出从小到大排序后的结果,数字间以1个空格分隔,行末不得有多余空格。

输入样例:

8 19 -18 13 26 275 26 7 35

输出样例:

-18 7 13 19 26 26 35 275

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

C++ (g++)

int Partition(SqList &L,int low,int high){ int i,j; L.r[0]=L.r[low]; while(low<high){ while(low<high&&L.r[high]>=L.r[0])high--; L.r[low]=L.r[high]; while(low<high&&L.r[low]<=L.r[0])low++; L.r[high]=L.r[low]; } L.r[low]=L.r[0]; return low; }

题目二

6-14 数据结构考题 - 快速排序 - 主调函数

分数 25

作者 陈皓

单位 合肥师范学院

用顺序表作存储结构,输入一组数据,用快速排序法对其进行排序。

顺序表的类型描述:

#define MAXSIZE 50 // MAXSIZE为最大数据元素数目 typedef int ElemType; typedef struct { ElemType r[MAXSIZE +1]; // r[0]闲置或另作它用 int length; }SqList;

函数接口定义:

下面给出了快速排序主调函数的大部分内容,但缺少了一部分(以下划线____标识出来的部分)。

请先将以下代码中画横线的部分补充完整,然后将完整的函数QuickSort提交系统,完成题目要求的功能。

void QuickSort(SqList &L, int low, int high) { int i; if (low<high ) { i=Partition(L, ____, ____ ); QuickSort(L, ____, ____ ); QuickSort(L, ____ , ____ ); } }

测试主程序样例:

int main () { SqList L; int low,high; create(L); low=1; high=L.length; QuickSort(L,low,high); print(L); return 0; }

输入格式:

第一行输入一个整数n,表示顺序表的元素个数。

第二行输入原始序列的n 个整数。

输出格式:

在一行中输出从小到大排序后的结果,数字间以1个空格分隔,行末不得有多余空格。

输入样例:

8 19 -18 13 26 275 26 7 35

输出样例:

-18 7 13 19 26 26 35 275

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

C++ (g++)

void QuickSort(SqList &L, int low, int high){ int i; if(low<high){ i=Partition(L,low,high); QuickSort(L,low,i-1); QuickSort(L,i+1,high); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 1:51:40

AI时代你不拥抱它,就得不到它的爱,信不信由你

AI时代你不拥抱它&#xff0c;就得不到它的爱&#xff0c;信不信由你 凌晨三点&#xff0c;你还在与一段顽固的代码搏斗&#xff0c;而隔壁工位的老王&#xff0c;早已用AI生成完整模块&#xff0c;正悠然地刷着短视频——这&#xff0c;就是拥抱与否的残酷分野。 一、幻想与现…

作者头像 李华
网站建设 2026/3/2 5:09:05

【API 设计之道】09 版本演进策略:激进废弃与平滑过渡的艺术

大家好&#xff0c;我是Tony Bai。欢迎来到我们的专栏 《API 设计之道&#xff1a;从设计模式到 Gin 工程化实现》的第九讲。在前面的讲解中&#xff0c;我们已经构建了一个设计规范、传输高效、且具备防御能力的 API 系统。现在&#xff0c;假设这个系统已经上线运行了一年&am…

作者头像 李华
网站建设 2026/2/28 6:24:56

列表 vs 元组:Python 中这对 “兄弟” 的核心区别与实战选择

作为一个刚学 Python 的大学生&#xff0c;上周写实验代码时差点被列表和元组搞崩溃&#xff1a;明明长得差不多&#xff0c;为啥改个元素就报错&#xff1f;为啥函数返回值默认是它不是我&#xff1f;直到扒了这俩的 “底”&#xff0c;才发现这俩货根本不是 “双胞胎”&#…

作者头像 李华
网站建设 2026/2/24 6:05:07

什么是 API(应用程序编程接口)?

文章目录什么是 API&#xff1f;API 代表什么&#xff1f;API 的工作原理是什么&#xff1f;SOAP API RPC APIWebsocket APIREST API什么是 REST API&#xff1f;什么是 Web API&#xff1f;什么是 API 集成&#xff1f;REST API 有哪些优势&#xff1f;1.集成 2.创新 3.扩展4.…

作者头像 李华
网站建设 2026/2/19 23:41:34

【资源对接会生产厂家】落地实施全流程复盘:构建高效对接模型并

【资源对接会】落地实施全流程复盘&#xff1a;构建高效对接模型并赋能产业升级在当前经济高质量发展与产业协同加速融合的背景下&#xff0c;【资源对接会】 已从传统招商推介活动演变为推动要素高效配置、促进产业链精准匹配的关键机制。尤其对于生产厂家而言&#xff0c;如何…

作者头像 李华