快速排序
来源:互联网 发布:mac最近删除的照片 编辑:程序博客网 时间:2024/05/22 03:02
快速排序体现的是一种分治法的思想。这里用一个例子来说明,有一个数组,6 1 2 7 9 3 4 5 10 8, 将这10个数进行排序。
第一步,先选一个基准数,这里为了方便,我们就选择第一个数6,我们需要做的就是找到一个位置k,使得k一边的数字全都小于这个基准,另一边的数字都大于这个基准。类似这样,3 1 2 5 4 6 9 7 10 8。
方法很简单,分别从两侧开始验证,start = 0, end = 9。end一侧的指针先移动,找比基准小的数。移动到5,start一侧的指针再移动,找到比基准大的数7.交换。
end一侧的指针接着移动,移动到4,start一侧的指针移动到9.交换。两边的指针都移动到3.相遇,于是停止移动。交换现在指针所指的元素和基准元素3和6。
现在的数组是,3 1 2 5 4 6 9 7 10 8。
阅读全文
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- vivado HLS 设计实现sBrief描述子
- java中获取时间戳的方法
- flume1.7 TailDirSource断点续传与文件更名后数据重复采集的bug修复
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)新的异常解决方案
- MyBatis学习入门_01
- 快速排序
- 经验之道:最有效的 iOS 内存泄漏检测
- Spring Security教程(1)----SpringSecurity3.2环境搭建
- 支付宝二维码脱机认证库测试(linux_x86平台验证)
- C# 小工具:读取excel表格,实现筛选某一列的功能,并显示处理
- SpringBoot 入门
- MySQL 主从配置
- 使用宏实现两个数中求较大值
- 铝合金