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

快速排序代码

定第一个元素为中间值

然后一直分两半递归

#include<stdio.h>

#include<stdlib.h>

int n, a[105]; // n 为数组元素个数,a 为待排序数组(下标从 1 开始)

/*

* 快速排序函数

* 参数:a[] - 待排序数组

* l - 左边界(起始下标)

* r - 右边界(结束下标)

* 空间复杂度:O(logn)(递归栈深度)

* 稳定性:不稳定

* 平均时间复杂度:O(nlogn)

* 最坏时间复杂度:O(n^2)(当数组已经有序或逆序时)

*/

void Qsort(int a[], int l, int r)

{

int p; // 基准值

if (l < r) // 当区间长度大于1时才需要排序

{

int i = l, j = r;

p = a[l]; // 选取当前区间第一个元素作为基准值

while (i < j) // 当左右指针未相遇时

{

// 从右向左扫描,找到第一个小于基准值的元素

while (i < j && a[j] > p) j--;

if (i < j) // 找到后放入左边的空位

{

a[i] = a[j];

i++; // 左指针右移一位

}

// 从左向右扫描,找到第一个大于基准值的元素

while (i < j && a[i] < p) i++;

if (i < j) // 找到后放入右边的空位

{

a[j] = a[i];

j--; // 右指针左移一位

}

}

// 循环结束时 i == j,即为基准值的最终位置

a[i] = p;

// 递归处理基准值左边的子区间

Qsort(a, l, i - 1);

// 递归处理基准值右边的子区间

Qsort(a, i + 1, r);

}

}

int main()

{

// 输入元素个数

scanf("%d", &n);

// 输入数组元素(下标从 1 开始)

for (int i = 1; i <= n; i++)

{

scanf("%d", &a[i]);

}

// 调用快速排序

Qsort(a, 1, n);

// 输出排序后的数组

for (int i = 1; i <= n; i++)

{

printf("%d ", a[i]);

}

printf("\n");

return 0;

}


http://www.jsqmd.com/news/903577/

相关文章:

  • VRX自主水面舰艇仿真平台:从零开始掌握水上机器人仿真技术
  • 通达信缠论插件:让复杂技术分析变得简单直观
  • VALSE 2026 Tutorial分享|视觉基础模型:从单任务到通用模型
  • 别再写死负责人了!Flowable候选人组实战:用Java代码搞定研发部请假审批
  • Obsidian Projects:如何在纯文本环境中实现高效项目管理?
  • 2026北京搬家公司怎么选?迁禧、四通、蓝犀牛等5大品牌深度横评+避坑指南 - 年度推荐企业名录
  • 税费前置展示普及之后跨境卖家如何减少结算阶段心理落差
  • 学习笔记。
  • 揭开高频交易的神秘面纱:以CTP为例,带你全面了解期货Tick数据
  • 京东e卡回收注意事项,这几点不看准吃亏 - 京顺回收
  • 2026年北京搬家公司完全指南:从居民搬迁到企业运营的全链条对标评测 - 年度推荐企业名录
  • 基于Azure OpenAI构建AI SEO智能体:从数据处理到自动化决策
  • 广东主流滑轨供应商一览,这些家居五金企业值得推荐! - 资讯焦点
  • 高性能后台管理前端架构设计:基于Layuimini的企业级解决方案
  • 基于SQLite的本地化二次智能决策系统设计与实现
  • 保姆级避坑指南:在Ubuntu 18.04 ROS Melodic上,用LeGO-LOAM跑通KITTI 00序列(附完整配置流程)
  • Windows 11终极优化指南:用Win11Debloat一键提升51%系统性能
  • NCCL性能调优必看:如何通过环境变量NCCL_TOPO_FILE与源码理解自定义机器拓扑
  • Sora 2多角色协同建模原理:从Prompt工程到时空一致性校准的12步实战指南
  • 【Gemini发布会技术预判权威报告】:基于172项专利引用+3轮Beta测试日志+Chrome OS内核补丁逆向的高置信度预测
  • 智能Parquet文件浏览器实战指南:一站式零门槛数据分析解决方案
  • 摄影师进阶:深度解析i1Profiler制作ICC曲线背后的色彩科学(从D50光源到色域图解读)
  • 2026 年 10 款桌面云横评 靠谱选型解决权限难管控痛点
  • Hermes Agent Chat 方法分析
  • 干货汇总2026冷冻机厂家TOP5推荐 筛选适配冷链运作优质生产商 - 资讯速览
  • 山东抖音推广公司排行:3家服务商实力实测对比 - 奔跑123
  • mytv-android:打造你的专属电视直播空间,告别卡顿与广告烦恼
  • 2026年北京搬家公司深度横评:如何避开报价300、结账3000的套路陷阱 - 年度推荐企业名录
  • QuickRecorder终极指南:macOS屏幕录制与系统音频捕获的完整解决方案
  • 2026年4月劳务输出出国务工实操指南:高端就业有安置成功的吗/中高端就业安排真实吗高端就业安置可靠吗/什么是高端就业/选择指南 - 优质品牌商家