C语言快速排序算法
2023-06-13 09:11:55 时间
用快速排序法对一组数据由小到大进行排序,数据分别为 99、45、12、36、69、22、62、 796、4、696。
实现过程:
(1)自定义一个函数 qusort(),实现快速排序。
(2) main() 函数为程序的入口函数。程序代码如下:
#include stdio.h int qusort(int s[],int start,int end) //自定义函数 qusort() int i,j; //定义变量为基本整型 i=start; //将每组首个元素赋给i j = end; //将每组末尾元素赋给j s[0]=s[start]; //设置基准值 while(i j) while(i j s[0] s[j]) j--; //位置左移 if(i j) s[i]=s[j]; //将s[j]放到s[i]的位置上 i++; //位置右移 while(i j s[i] =s[0]) i++; //位置左移 if(i j) s[j]=s[i]; //将大于基准值的s[j]放到s[i]位置 j--; //位置左移 s[i]=s[0]; //将基准值放入指定位置 if (start i) qusort(s,start,j-1); //对分割出的部分递归调用qusort()函数 if (i end) qusort(s,j+1,end); return 0; int main() int a[11], i; //定义数组及变量为基本整型 printf( 请输入10个数:/n for(i=1;i i++) scanf( %d , a[i]); //从键盘中输入10个要进行排序的数 qusort(a,1,10); //调用qusort()函数进行排序 printf( 排序后的顺序是:/n for(i=1;i i++) printf( %5d ,a[i]); //输出排好序的数组 printf( /n return 0; }运行结果:
请输入10个数:
99 45 12 36 69 22 62 796 4 696
排序后的顺序是:
4 12 22 36 45 62 69 99 696 796
快速排序是冒泡排序的一种改进,主要的算法思想是在待排序的 n 个数据中取第一个数据作为基准值,将所有记录分为 3 组,使第一组中各数据值均小于或等于基准值,第二组做基准值的数琚,第三组中各数据值均大于或等于基准值。这便实现了第一趟分割,然后再对第二组和第兰组分别重复上述方法,依次类推,直到每组中只有一个记录为止。
21757.html
相关文章
- 银行家算法-C语言实现
- C语言经典算法(七)——递归实现阶乘算法的两种方法「建议收藏」
- C语言 排序算法_C语言中三大经典的排序算法
- 【安全算法之MD5】MD5摘要运算的C语言源码实现
- 【安全算法之SHA1】SHA1摘要运算的C语言源码实现
- 【安全算法之SHA384】SHA384摘要运算的C语言源码实现
- C语言 | 动图演示十大经典排序算法(含代码)
- [C语言] 数据结构-算法效率的度量方法-事前分析估算方法详解编程语言
- 数组倒序排列,数组倒置,C语言数组倒序算法详解
- 插入排序算法,C语言插入排序算法详解
- C语言希尔排序算法
- C语言选择排序算法
- C语言直接插入排序算法
- Linux下如何使用C语言实现文件复制功能(linuxc复制文件)
- MySQL连接代码C语言实现(c mysql连接代码)
- 使用C语言编写MySQL批处理提高数据库性能(c mysql 批处理)
- 掌握MySQLC语言实现MySQL完整源码(c mysql完整源码)
- C语言调用Oracle序列的实现方法(c 调用oracle序列)
- C语言获取Oracle数据库游标(c 获取oracle游标)
- 快速熟悉Oracle数据库的C语言操作(c 写oracle数据库)
- C语言Oracle库构建属于自己的数据库(c oracle库建库)
- 对C语言中递归算法的深入解析
- C语言实现魔方阵算法(幻方阵奇魔方单偶魔方实现)
- C语言实现的排列组合问题的通用算法、解决方法
- C语言kmp算法简单示例和实现原理探究