快排

1.快排的实现逻辑:
  1. 先从数列中取出一个数作为基准数(通常取第一个数)。
  2. 遍历序列,将比它小的数与比它大的数分别记录下来,分为两类,最后该数放在这两类数中间(它左边的所有数都比它小,右边的所有数都比它大)
  3. 分别遍历左右区间,重复,直到各区间只有一个数
2. 动态演示

  1. 代码实现
#include<bits/stdc++.h>
using namespace std;void QuickSort(int *arr, int left, int right) {if(left > right) return;int i = left, j = right;int flag = arr[left];while(i != j) {while(arr[j] > flag && i < j) j--;while(arr[i] <= flag && i < j) i++;if(i<j) swap(arr[i], arr[j]);} //完成while循环后,i=j//交换准基数与相遇值,即将中值归位arr[left] = arr[i];arr[i] = flag;//将中值左、右侧的数据分别进行排序(递归)QuickSort(arr, left, i-1);QuickSort(arr, i+1, right); //最左边的为准基数
} int main() {int n; cin>>n; int array[n];for(int i = 0; i < n; i++) cin>>array[i];QuickSort(array, 0, n-1);//范围for循环打印数组for(int i = 0 ; i < n; i++) cout << array[i] << ' ';return 0;}

23行代码_动图展示——快排详解(排序最快的经典算法)相关推荐

  1. 【数据结构】——快排详解

    文章目录 1.快排的含义 2.快排的实现 2.1思路讲解 2.2代码实现 3.快排的时间复杂度分析 4.快排的优化 上一篇文章我们介绍了八大排序中的七种,今天这篇文章主要来详细介绍一种比较重要也是常用 ...

  2. 图片怎么合成gif动图?操作步骤详解

    图片怎么合成gif动图?gif动图的使用非常的广泛,平时我们聊天中见到的动态表情,已经逛某宝时看到的动态广告图,其实都是gif动图.小编作为一名互联网从业者,经常需要使用或者制作gif动态图片.不知道 ...

  3. 【排序算法】冒泡排序(动图演示) - 保姆级详解

    冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来. 算法步骤 比较相邻的元素.如果第一个比第二个大,就交换 ...

  4. 二分查找 归并排序 快排 详解C++

    这三个排序算法一直是面试的重点,大多数都是C语言写的,今天整理了一下C++的写法,思想都差不多.这几个排序经常忘记,今天抽空记在这,以便自己以后查阅,不对的地方,也欢迎大家评论,不吝指正,谢谢! 二分 ...

  5. vscode 怎么让光标一下子跳到行尾部_动图演示23个常用 VsCode 快捷键(Window Mac)...

    作者:Andreas 译者:前端小智 尽管我们经常使用 VS Code中的许多快捷方式,但是我们有可能会忘记它们.这里用可视化制作了一些GIF,以便更好地记住它们,希望对你有所帮助. VSCode中的 ...

  6. QT导入百度地图<附代码及动图展示>

    老规矩,先看效果 开始步骤:七步走 第一步:进入百度创建地图链接,请点击:创建地图链接 1.1 点击这个 1.2 然后全选自定义地图代码并复制 第二步:在D盘新建一个baidu.html文件,将复制的 ...

  7. 收发一体超声波测距离传感器模块_动图展示超声波液位计原理,很好用但是需要注意以下几点!...

    超声波液位计是液位测量仪表界中的新的宠儿,而它另外一个名字大家可能耳熟能详:非接触式超声波液位计.没错,超声波液位计以非接触作为主要特点,在电气仪表的圈子里面,占据了越来越重要的角色.非接触式超声波液 ...

  8. 不动产房屋结构代码_不动产统一登记数据库结构详解.doc

    要素代码与名称描述表 要素代码要素名称要素类型1000000000基础地理信息要素1001000000 境界与政区1001010000 行政区空间<基础地理信息要素分类与代码>(GB/T ...

  9. light动名词_动名词专项训练·附详解

    说明:引用此文请注明出处,并务请保留后面的有效链接地址,谢谢! 动名词专项训练 1.When you're learning to drive, ________ a good teacher mak ...

最新文章

  1. 处理问题:变量名‘@UserName’已声明。变量名在插叙批次或存储过程内部必须唯一
  2. hdu 5095 Linearization of the kernel functions in SVM(模拟,分类清楚就行)
  3. 前后端分离之JWT用户认证
  4. 改变窗口的外观和大小
  5. 旧文重发:苹果是怎么吃到的?
  6. Acer 4750 安装黑苹果_安装黑苹果,你需要注意哪几点
  7. 请写一个java程序实现线程连接池功能_请写一个java程序实现线程连接池功能
  8. 【iOS开发】使用XCode 8进行真机调试的方法(各种报错信息的解决方法)
  9. break and continue;
  10. 关于virtual pc安装Redhat
  11. c语言中如何用字母代替加减乘除的符号,c语言加减乘除代码
  12. 集中火力,专项击破!数据分析可视化广深线下培训火热来袭
  13. Windows部署WSUS补丁服务器
  14. 常见容错机制:failover、failback、failfast、failsafe
  15. NAudio:MP3转WAV和Wav转Mp3
  16. centos 设置为北京时间
  17. 现在怎样做自媒体赚钱?
  18. OPC DA调研报告
  19. 利用tensorflow神经网络进行泰坦尼克的生存预测
  20. 让IE浏览器支持HTML5标准的方法

热门文章

  1. 一个内核网络漏洞详解|容器逃逸
  2. Apache架构师总结的30条设计原则!
  3. 世界上没有技术驱动型公司
  4. Python中的GIL和深浅拷贝
  5. C++中各种智能指针的实现及弊端(五)
  6. 知乎云敲钟、比特币可购买特斯拉、用户隐私收集新规五一生效、 软件疯长等|Decode the Week...
  7. crond和crontab
  8. 大型前端项目的断点调试共享化和复用化实践
  9. 披荆斩棘:论百万级服务器反入侵场景的混沌工程实践
  10. VSCode配置Python编辑器