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

C语言实现快速排序

完整代码:

#include<stdio.h>//用第一个元素将待排序序列划分成左右两个部分,返回排序后low的位置,即枢轴的位置
int partition(int arr[],int low,int high){//让待排序序列中的第一个元素成为基准int pivot=arr[low];//low=high代表一次划分完成while (low<high){//从待排序序列的右边往左找//找到一个比基准小的元素,循环就结束while (low<high&&pivot<=arr[high]){high--;}//让比基准小的元素移动到左边arr[low]=arr[high];//从待排序序列的左边往右找//找到一个比基准大的元素,循环就结束while (low<high&&pivot>=arr[low]){low++;}//让比基准大的元素移动到右边arr[high]=arr[low];}//让基准元素成为枢轴,此时,枢轴左边都是比它小的元素,枢轴右边都是比它大的元素arr[low]=pivot;//返回枢轴return low;
}//快速排序
//在区间中挑选第一个元素作基准,将小于基准的元素放在基准之前,大于基准的元素放在基准之后,再分别对小数区与大数区进行排序
//对于这两个区间就可以采用递归调用方式再次进行排序
void quick_sort(int arr[],int low,int high){//low=high代表一趟排序完成if (low<high){//pivot作为划分左右两个区间的枢轴,即左子表 枢轴 右子表int pivot=partition(arr,low,high);//划分左子表quick_sort(arr,low,pivot-1);//划分右子表quick_sort(arr,pivot+1,high);}
}int main(){int arr[10]={3,2,1,7,5,9,8,4,10,6};quick_sort(arr,0,10);for (int i = 0; i < 10; i++){printf("%d ",arr[i]);}return 0;}

运行截图:

http://www.lryc.cn/news/254266.html

相关文章:

  • ChatGPT对于当今的社会或科技发展有何重要性?
  • 宝塔是可以切换mongodb版本的
  • 16、XSS——会话管理
  • 稀疏矩阵的操作(数据结构实训)
  • sqlite - sqlite3_exec - c++回调函数的处理
  • docker搭建logstash和使用方法
  • Memory-augmented Deep Autoencoder for Unsupervised Anomaly Detection 论文阅读
  • Mac端 DevEco Preview 窗口无法展示,提示文件中的node.dir错误
  • TIMO后台管理系统 Shiro 反序列化漏洞复现
  • 3.4_1 java自制小工具 - pdf批量转图片
  • vue中实现数字+英文字母组合键盘
  • Centos服务器上根据端口号查询jar包,根据jar包查端口号
  • 数据仓库与数据挖掘复习资料
  • 限流算法,基于go的gRPC 实现的
  • Shell中HTTP变量和文本处理
  • java学习part39map
  • 使用sqoop操作HDFS与MySQL之间的数据互传
  • Kafka使用指南
  • HarmonyOS4.0从零开始的开发教程03初识ArkTS开发语言(中)
  • 西工大计算机学院计算机系统基础实验一(函数编写1~10)
  • VMware 虚拟机 电脑重启后 NAT 模式连不上网络问题修复
  • 【桑基图】绘制桑基图
  • ACM32F403/F433 12 位多通道,支持 MPU 存储保护功能,应用于工业控制,智能家居等产品中
  • 7. 从零用Rust编写正反向代理, HTTP及TCP内网穿透原理及运行篇
  • UE4.27-UE5.1设置打包Android环境
  • MySQL授权密码
  • 0X05
  • Doris优化总结
  • 案例059:基于微信小程序的在线投稿系统
  • 利用STM32内置Bootloader实现USB DFU固件升级