当前位置: 首页 > news >正文

快速排序算法: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); } }
http://www.rkmt.cn/news/144122.html

相关文章:

  • 基于USB协议的PLC调试接口设计实例
  • 知识图谱构建一、知识图谱二、知识抽取三、知识融合#人工智能#具身智能#VLA#大模型#A
  • 降息预期落空!3800个股待涨!
  • 企业培训新方式:用Anything-LLM构建员工学习系统
  • 对象存储对接:兼容S3协议的廉价扩容方案
  • MOSFET驱动电路PCB设计注意事项
  • 源代码输出出现乱码的解决方案
  • 基于角色的权限控制:Anything-LLM如何实现细粒度授权?
  • Bevy插件设计与参数化实例
  • 如何通过Anything-LLM提升客户文档响应效率?
  • 企业知识管理革命:Anything-LLM全功能平台实测体验
  • Python 第三方库:darts(现代化时间序列建模与预测框架)
  • 多语言支持能力测试:Anything-LLM能否胜任国际化需求?
  • Protel99SE安装教程:工业控制项目入门必看指南
  • 无需公网暴露:内网部署Anything-LLM保障信息安全
  • 【口碑好的资源对接会】落地实施全流程复盘:构建高效对接模型并
  • 如何为客户提供定制化AI文档服务?从Anything-LLM开始
  • 本地运行大模型不再是梦:Anything-LLM部署避坑指南
  • x64dbg用户层调试核心要点一文说清
  • 一键启动的知识引擎:Anything-LLM Docker镜像使用教程
  • 构建行业垂直知识库:基于Anything-LLM的定制方案
  • AI+智慧农业应用解决方案(附下载)
  • 【无标题】知识图谱构建
  • 德勤集团财务管理标准化项目解决方案(附下载)
  • 从零搭建个人AI助手——基于Anything-LLM镜像的完整指南
  • 库存周转率分析:结合销售数据提出补货建议
  • 在线电路仿真对比:LTspice Web与其他工具优劣比较
  • 软通动力正式发布“软通天鸿操作系统6“,以全栈智能助推开源鸿蒙全域商用
  • 基于SpringBoot+Vue的社区老人健康信息管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 【2025最新】基于SpringBoot+Vue的点播系统管理系统源码+MyBatis+MySQL