博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序(Quick Sort)的C语言实现
阅读量:4504 次
发布时间:2019-06-08

本文共 1506 字,大约阅读时间需要 5 分钟。

快速排序(Quick Sort)的基本思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对着两部分记录继续进行排序,以达到整个序列有序,具体步骤为
  1. 设立枢轴,将比枢轴小的记录移到低端,比枢轴大的记录移到高端,直到low=high停止
  2. 分别对枢轴低高端部分再次快速排序(即重复第1步)
  3. 重复第1、2步,直到low=high停止

C语言实现(编译器Dev-c++5.4.0,源代码后缀.cpp)

原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia

1 #include 
2 #include
3 #define MAXSIZE 6 4 #define OK 1 5 #define ERROR 0 6 7 typedef int Status; 8 typedef int KeyType; 9 typedef char InfoType;//要malloc() 10 11 typedef struct{12 KeyType score;13 InfoType name[20]; 14 }RedType;//记录类型 15 16 typedef struct{17 RedType r[MAXSIZE+1];18 int length;19 }SqList;20 /*21 Name: 初始化22 Copyright: 23 Author: leo 24 Date: 10-12-15 16:5425 Description: 初始化顺序表 26 */27 28 Status initSqList(SqList &l){29 l.length=MAXSIZE;30 printf("%d",l.length);31 for(int i=1;i<=l.length;i++){32 printf("请输入第%d个同学的名字和分数",i);33 gets(l.r[i].name);34 scanf("%d",&(l.r[i].score));35 getchar();36 printf("\n");37 }38 39 return OK;40 }41 /*42 Name: 部分排序 43 Copyright: http://www.cnblogs.com/gangtiexia44 Author: 钢铁侠45 Date: 10-12-15 17:0046 Description: 反复按照枢轴进行快速排序:将比枢轴大的放在一边,比枢轴小的放在另一边 47 */48 49 int partition(SqList &l,int low,int high){50 l.r[0]=l.r[low];//枢轴 51 while(low
l.r[0].score) high--;53 l.r[low]=l.r[high];54 while(low

 

转载于:https://www.cnblogs.com/gangtiexia/p/5097202.html

你可能感兴趣的文章
Post流提交、接收
查看>>
长表单
查看>>
SAP iDoc 概念及管理
查看>>
WPF 免费控件库
查看>>
一个web初学者的笔记总结
查看>>
微信小程序组件解读和分析:四、icon图标
查看>>
Java ——正则表达式
查看>>
Matlab——图形绘制——三维立体图形 剔透玲珑球 动态图——彗星状轨迹图
查看>>
Sublime Text3 调色板 ColorPicker插件安装及快捷键
查看>>
数论--康托展开
查看>>
基于webpack4+vue-cli3项目的换肤功能
查看>>
itk_component packed in the sub-class
查看>>
润乾报表函数
查看>>
通过NORFLASH中的uboot烧写uboot到nandFlash
查看>>
在windows下装2个mysql数据库的办法
查看>>
实验二
查看>>
memset初始化
查看>>
5.2上午
查看>>
WingIDE4.1 破解及支持中文设置
查看>>
《软件工程实践》第五次作业——项目选题报告(团队)
查看>>