提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、快速排序思路
  • 二、快速排序代码
  • 三、读入数据
  • 总结

前言

快速排序的特点
1、快速排序是对冒泡算法的改进。
2、快速排序的基本思想是对要排序的数组进行划分,使左边的小于某个数,右边的大于某个数。重复执行以上划分,直到有序为止。(这里主要针对递增排序)


提示:以下是本篇文章正文内容,下面案例可供参考

一、快速排序思路

(1)定义两个变量low、high分别标识数组的第一个元素下标和最后一个元素下标。
(2)定义变量key先存储第一个数组arr[0],以后key的值都为划分后的第一个元素
(3)先从数组的后面看起,high–直到发现有一个数小于key,arr[low]=arr[high],由于此时已经确定arr[low]比key小了,所以low++。直到low=high。
(4)利用递归来实现对已经划分的数组再次划分,直到划分的左右两边都只有一个数。

二、快速排序代码

代码如下:

void QuickSort(int *arr,int low,int high){if(low<high){//不加这个条件会死循环 int i=low;int j=high;int key=arr[low];while(i<j){while(i<j&&arr[j]>=key)j--;if(i<j) arr[i++]=arr[j];//先赋值在自增 while(i<j&&arr[i]<key)i++;if(i<j)arr[j--]=arr[i];//先赋值在自增             }arr[i]=key;QuickSort(arr,low,i-1);//给左边排序 QuickSort(arr,i+1,high);//给右边排序 }}

三、读入数据

代码如下:

int main(){int a[11]={25,1,12,25,10,10,34,900,23,12,80};QuickSort(a,0,10);int i;for(i=0;i<11;i++){printf("%d ",a[i]);}return 0;}

执行结果:

1 10 10 12 12 23 25 25 34 80 900
--------------------------------
Process exited after 0.01681 seconds with return value 0
请按任意键继续. . .

总结

快速排序用到了划分的思想,递归算法。

快速排序(代码通俗易懂,干净整洁)相关推荐

  1. uni-app - 幸运抽奖圆形大转盘插件组件(支持后端接口确定最终奖品,可自定义轮盘宽高、颜色、字号、按钮等等,全端兼容代码干净整洁无 BUG,官方最好用的营销页面抽奖转盘源码)老虎机九宫格式抽奖机

    前言 如果您需要九宫格式抽奖机(如下图所示) ,请访问:这篇文章. 网上很多文章都非常乱且一堆 BUG,本文提供无 BUG 的 "组件式" 抽奖大转盘, 您只需要复制粘贴,按照组件 ...

  2. 微信小程序 - [完整源码] 全屏左右菜单联动效果,左侧分类与右侧内容联动,类似美团饿了么的点餐页面 “左边菜单,右边内容“ 效果(开箱即用的示例源码,代码干净整洁且注释详细)

    前言 您可能需要:微信小程序 - 外卖点餐的左右联动功能界面(购物车加减商品,购物车自动计算金额等电商功能) 网上的教程样式和逻辑都太乱了(而且 BUG 一堆.各种真机运行不兼容),直接复制下来后代码 ...

  3. Vue - 满意度调查评价功能,表情图片打分评分组件(非星星评分组件,类似抖音商品满意度好评、中评、差评评价功能)代码干净整洁注释详细无 BUG,无任何第三方插件依赖,完整功能实例源码插件

    前言 网上的教程组件代码写的太多,而且功能不好用,主要都存在图片切换时 "闪烁" 的问题. 实现了 适用于 Vue.js / Nuxt.js 的表情图片满意度评价功能(评分组件), ...

  4. 微信小程序 - 满意度调查评价功能,表情图片打分评分组件(非星星评分组件,类似抖音商品满意度好评、中评、差评评价功能)代码干净整洁注释详细无 BUG,无任何第三方插件依赖,完整功能实例源码插件

    前言 网上的教程组件代码写的太多,而且功能不好用,主要都存在图片切换时 "闪烁" 的问题. 实现了 适用于微信小程序的表情图片满意度评价功能(评分组件),高效无 BUG 没有任何插 ...

  5. Vue - 实现图片裁剪功能,并上传到服务器(内置第三方最优秀的裁剪图片组件,上传到服务器功能)干净整洁无 BUG 的示例源码与超详细的注释,兼容任意浏览器

    前言 您可以滑动到文章最底部,直接克隆完整示例 Gitee 仓库,与本文教程最终效果一致. 在项目开发中,您难免会遇到图片上传到服务器之前,用户可进行裁剪的需求, 在看了网上大部分教程后,代码都非常乱 ...

  6. 《代码整洁之道》第一章 整洁代码 ---为什么需要整洁代码?

    第一章 整洁代码 概述 什么是整洁代码? 开始走向整洁代码 概述 欢迎阅读本栏目的读者,如果你想成为更加优秀的coder,请跟随笔者的观点去解析<代码整洁之道>这本书,相信你会收获颇丰. ...

  7. 如何让你的 Linux 系统干净整洁

    如何让你的 Linux 系统干净整洁 Linux的最大优点之一就是,使用一段时间后,它照样很稳定.Linux面临的最大挑战就是,将它安装起来,并找到并配置你完成工作所需要的软件.一旦你完成了这项任务, ...

  8. 二分查找算法+代码(通俗易懂简洁扼要)

    知乎原文出处二分查找算法+代码(通俗易懂简洁扼要) - 知乎 欢迎关注我的知乎账号:进击的steve - 知乎 二分查找是一个可以把单值查找时间复杂度从O(n)降到O(logn)的算法. 二分查找的前 ...

  9. 一个简单的步骤让你的 Python 代码更干净

    说起来容易做起来难,我们都知道代码可读性非常重要,但是写的时候总是随心所欲,不考虑类型提示.import 排序.PEP8 规范.今天分享一个小技巧,通过一个简单的步骤就可以让你的 Python 代码更 ...

最新文章

  1. java怎么建立内部类_语法 - 是否可以在Java静态中创建匿名内部类?
  2. Annihilate(SA)
  3. Markdown 图标 快捷键
  4. 机箱硬盘指示灯不亮_安钛克DF600 FLUX机箱:FLUX平台第一款机箱,为全民电竞热“降温”...
  5. keil c语言绝对值函数,keil编写C程序是不是不能在函数内定义变量啊,求大神
  6. UVALive 4223 Trucking 二分+spfa
  7. 数据分析,怎么做才够“精准”
  8. 1 密码学的发展历程
  9. 危化园区信息化管理平台(附方案+源码)
  10. C# label換行
  11. mac os 系统升级到 Catalina 版本后出现应用打不开 ,闪退,意外退出问题
  12. 外部接口调用失败重试
  13. vue+vant图片上传压缩图片大小
  14. JavaFX官方文档
  15. 美国主机网站建设中的安全性和隐私保护措施
  16. 第十二章 Spring Cloud Config 统一配置中心详解
  17. 大数据和云计算在智慧工厂中的应用
  18. shell 脚本如何判断文件是否存在
  19. python葵花宝典第15式-匿名函数、内置函数、映射函数
  20. Javascript打印机表白

热门文章

  1. ubuntu没有inittab
  2. win7 64位下android开发环境的搭建
  3. vs2017安装QT插件
  4. 又被拒了?替你猜透面试官的真实想法!
  5. 2017年,孩子,我想和你说
  6. 来自波哥大的见闻与思考
  7. 跳槽时,HR问“上家离职原因”,这样回答能加分
  8. [论文笔记] Chubby 分布式锁服务
  9. PAT甲级1035 Password
  10. qmainwindow 标题栏_Qt之360安全卫士主界面(标题栏)