快速排序的基本原理是采用递归,我们主要关注第一次排序。排序中,我们需要给出待排的一组数的最左边和最右边的两个数:left、right用于指定排序的范围,通常left=0;right=len-1。此外还需要给出一个基数,这个数的选取比较随意,通常选为第一个数即可。选出这个基数(point)后,我们进行比较,将小于基数的数移到左边,大于的数移到右边,完成第一次排序。此后在左半部分和右半部分进行递归即可完成全部的排序。

#include<stdio.h>
void qusort(int a[],int l,int r)
{int i=l;//i为从左到右的‘key’值int j=r;//r为从右到左的'key'值int point=a[i];//将基准值设为a[0]if(l>r){return;}//防止输入错误while(i<j){while(i<j&&a[j]>point)j--;//如果右边大于基准值,右边左移if(i<j){s[i]=s[j];i++;}如果右边小于基准值,右边填坑基准值的位置,并右移一位while(i<j&&a[i]<point)i++;//如果左边小于基准值,左边右移if(i<j){s[j]=s[i];j--;}如果左边小于基准值,左边填坑到右边,并左移一位}s[i]=point;//填坑qusort(a,l,i-1);//左边递归qusort(a,j+1,r);//右边递归
}
int main()
{int a[]={48,6,57,42,60,72,83,73,88,85 };int len=sizeof(a)/sizeof(int);//使用len维护数组大小qusort(a,0,len-1);for(int i=0;i<len;i++){printf("%d",a[i]);}
}

结果如下:

简单的C语言代码实现快速排序相关推荐

  1. 线性结构 -- 连续存储(数组), 1个简单的c语言代码实现.

    数据结构大体成上可以分成两种: 1. 线性结构. 2. 非线性结构( 树,图) 1. 什么是线性结构        大概上可以这样定义: 加入所有的节点可以用一条直线连接起来. 就是线性结构... 2 ...

  2. 数据结构 --静态队列的一个简单的C语言代码实现

    静态队列的大概原理和部分算法讲解已经在上一篇博文中讲过了.. http://blog.csdn.net/nvd11/article/details/8816699 这里接上篇文章, 用c语言来实现1个 ...

  3. 一个简单的C语言代码段,逻辑题

    最近在练习写C代码,发觉自己真的很喜欢写代码,就分享下自己写的代码,我的代码也是在原有作者的基础上改成自己的代码. 程序猿有一种分享欲,自己一个人闷着,戴着耳机写代码,就想分享出来,希望有人可以看见可 ...

  4. 一些简单的C语言代码

    1.从键盘获取一个年份,判断其是否为闰年 闰年判断方法:能被4整除且不能被100整除,或者能被400整除 #define _CRT_SECURE_NO_WARNINGS #include <st ...

  5. 登录Linux操作系统并执行第一个C语言代码

    为什么要选择Linux 在服务器领域,IBM.HP.Novell.Oracle 等厂商对Linux 系统提供了全方位的支持.2004年,IBM宣布其全线 服务器均支持Linux,思科公司在网络防火墙和 ...

  6. header-icon stm32实现圆弧插补,c语言代码实现

    圆弧插补是指将圆弧转换为若干个线段或点,并在 STM32 上实现它.下面是一个简单的实现方法: 计算圆弧上的点:使用极坐标系中的极角和极径来确定圆弧上的点. 将极坐标转换为直角坐标:使用极坐标公式将极 ...

  7. 数据结构 - 队列简介 及 1个简单的c语言链式队列代码实现

    1. 队列的定义 所谓队列(queue)就是一种能实现"先进先出"的一种线性存储结构. 跟栈有点类似,  例如栈只有1个出入口, 任何元素进入或者离开栈都必须经过同1个出入口(栈顶 ...

  8. 快速排序c语言实现,快速排序的C语言代码实现

    快速排序实质上是对"冒泡排序"的一种改进,整个排序过程可概括为:通过N趟的排序将原本的排序数据分为若干块进行分块排序,而在每趟排序过程中,以指定的关键字将待排数据分别分为比关键字大 ...

  9. 从入门到入土:基于C语言采用UDP协议实现远程控制|详细说明|利用流套接字实现一个简单的远程控制系统|代码展示

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  10. 完整简单c语言程序代码,一些简单的C语言程序代码.docx

    一些简单的C语言程序代码 由键盘任意输入1个4位数整数,分别输出其中的个位.十位.百位.千位./* expe 3-10 */#include #include void main(void){ int ...

最新文章

  1. Python3 函数function
  2. 在一家公司呆了 10 年的程序员,最后都怎么了?
  3. 专题 13 IPC之信号量
  4. 在几何画板中如何制作圆柱的侧面展开动画_倒计时与时钟演示 | 几何画板
  5. 最常见的显示设置和快捷键
  6. consul之:ACL配置使用
  7. mysql数据库服务器设置访问权限
  8. java中自定义输入数字格式_Java 创建并使用自定义数字格式、35;###、####.#####和语言环境...
  9. Spring IOC学习心得之源码级分析ContextLoaderListener的作用(IOC容器初始化入口)
  10. a(n+1) = f[a(n)] 型递推数列的迭代作图(玩计算器玩出了问题)
  11. 7832:最接近的分数
  12. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )...
  13. shp文件中polyline是什么_SHP文件坐标转换工具1.0版
  14. 雷达imu联合标定lidar_imu_calib-main
  15. linux还原防火墙设置,Linux防火墙设置教程
  16. Windows 10搭建FTP服务器
  17. [SPOJ IGAME Interesting Game]Nim 博弈+数位DP
  18. 机器学习平台基础知识
  19. ListView 上下移动行
  20. 笔记本电脑触控板突然失灵的解决办法

热门文章

  1. ffmpeg之H265解码
  2. JS 大陆香港台湾手机格式校验
  3. 使用高通解析ramdump tool 遇到的问题
  4. arduino/mixly 智纳捷TTS语音合成模块
  5. OPNET仿真中的问题
  6. GB28181学习之路——eXosip获取IP和端口
  7. webmax的3DMAX导出插件下载
  8. 【STM32H7的DSP教程】第22章 DSP矩阵运算-放缩,乘法和转置矩阵
  9. 《麦肯锡卓越工作方法》读后感
  10. RFID技术如何管理图书馆