news 2026/7/26 16:11:31

快速排序算法: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/7/19 12:54:21

降息预期落空!3800个股待涨!

一&#xff0c;双底筑牢后大盘稳步上行&#xff01;年底磨底蓄力&#xff0c;春季行情就看科技 港股上周大盘构筑好双底形态后&#xff0c;指数就稳稳地往上走了。虽然每天的成交量没放大多少&#xff0c;但胜在天天都能涨一点&#xff0c;走得特别扎实。尐程序&#xff1a;期…

作者头像 李华
网站建设 2026/7/16 14:01:49

dll生产制作面板项目:跨平台可视化DLL/SO生成工具全解析

Dll生产制作面板项目&#xff1a;跨平台可视化DLL/SO生成工具全解析 告别繁琐的命令行操作&#xff0c;一个基于Web的动态链接库生成工具正在重新定义Windows和Linux平台上的库文件开发体验。 项目概述&#xff1a;可视化动态库生成新时代 在传统的动态库开发过程中&#xff0c…

作者头像 李华
网站建设 2026/7/16 3:22:39

vscode的colab扩展目前的一些问题

文章目录背景我遇到的一些问题问题暂时的解决方法文本数据&#xff1a;直接打印序列化数据&#xff1a;notebook本身就是序列化数据存储的结果先讲一点前端与后端好&#xff0c;现在回来讲为什么vscode的扩展不能够挂载Google Drive问题&#xff1a;解答&#xff1a;Colab 网页…

作者头像 李华
网站建设 2026/7/20 14:07:01

小孩子近视了能治好吗?这些防护要点请知悉

很多家长发现孩子近视后&#xff0c;第一反应就是“能不能治好”&#xff0c;这个问题牵动着无数家庭的心。事实上&#xff0c;儿童近视一旦确诊为真性近视&#xff0c;无法被彻底治愈&#xff0c;只能通过科学手段控制度数增长&#xff0c;避免发展为高度近视&#xff1b;而假…

作者头像 李华
网站建设 2026/7/16 10:07:11

超详细版:Vivado中导入外部VHDL语言文件的方法

如何在Vivado中正确导入外部VHDL文件&#xff1f;一文讲透工程集成全流程你有没有遇到过这种情况&#xff1a;辛辛苦苦写好的VHDL模块&#xff0c;复制到Vivado工程里却“看不见”&#xff1f;综合时报错“Entity not found”&#xff0c;仿真时信号全红&#xff0c;折腾半天才…

作者头像 李华
网站建设 2026/7/23 2:56:36

LED阵列汉字显示实验核心要点:扫描频率优化策略

让汉字“稳”在眼前&#xff1a;LED阵列扫描频率的实战调优之道你有没有试过自己搭一个1616 LED点阵&#xff0c;想显示个“你好”&#xff0c;结果字一出来——闪得像老式日光灯&#xff0c;亮度忽明忽暗&#xff0c;下排比上排暗一大截&#xff1f;别急&#xff0c;这多半不是…

作者头像 李华