快速排序法原理(数组排序有什么好方法)

本文目录
数组排序有什么好方法
数组排序有冒泡排序法、选择排序法、插入排序法和快速排序法。
1、冒泡排序法。冒泡排序是一个比较简单的排序方法。在待排序的数列基本有序的情况下排序速度较快。
2、选择排序法。选择法的原理是先将第一个数与后面的每一个数依次比较,不断将将小的赋给第一个数,从而找出最小的值。
3、插入排序法。插入排序对少量元素的排序较为有效。
4、快速排序法。快速排序法的原理是通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
快速排序的原理是什么
先
数据序列
选
元素,并
序列
所
比该元素
元素都放
右边或左边,再
左右两边
别用同
处
直
每
待处理
序列
度
1,
处理结束
前
序区R
任取
数据元素作
比较
"基准"(
妨记
X)
用
基准
前
序区划
左右两
较
序区:R
R
且左边
序
区
数据元素均
于等于基准元素
右边
序
区
数据元素均
于等于基准元素
基准X则位于
终排序
位置
即R(1≤I≤H)
R
R均非空
别
进行
述
划
程
直至所
序
区
数据元素均已排序
止
快速排序
基本思想
基于
治策略
于输入
序列L
规模足够
则直接进行排序(比
用前述
冒泡、选择、插入排序均
)
否则
三步处理:
解(Divide):
待排序列L划
两
非空
序列L
L
使L
任
元素
值
于L
任
元素
值
具体
通
途径实现:
序列L
选择数据元素L
经比较
移
L
处于L
间
适
位置
使
数据元素L
值
于L
任
元素
值
递归求解(Conquer):通
递归调用快速排序算
别
L
L进行排序
合并(Merge):由于
解
两
序列
排序
进行
所
L
L都排
序
需要执行任何计算L
已排
序
即自
合并
解决流程
符合
治
基本步骤
快速排序
治
经典应用实例
快速排序在什么情况下最能发挥其长处
最好情况:
每一次划分对一个记录定位后,该记录的左侧子表与右侧子表的长度相同,为O(nlog2n)。
最坏情况:
每次划分只得到一个比上一次划分少一个记录的子序列(另一个子序列为空),为 O(n2)。
扩展资料
快速排序实现原理:
快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
1、默认数组的第一个数为基准数据,赋值给key,即key=array。
2、因为默认数组的第一个数为基准,所以从后面开始向前搜索(high–),找到第一个小于key的array 《 key)
3、此时从前面开始向后搜索(low++),找到第一个大于key的array 》 key)
4、循环 2-3 步骤,直到 low=high,该位置就是基准位置。
5、把基准数据赋给当前位置。

更多文章:
安装server2008r2系统(windows11系统能安装sqlserver2008R2吗)
2026年8月12日 22:30
rowspan原理(如何在后台动态的修改gridview某一列的标题)
2025年8月3日 22:30
sql server查询包含某个内容(SQL server 查询数据库中所有包含某值的表)
2025年10月12日 18:45
location对象的方法(如何使用JavaScript对URL进行重定向)
2026年8月11日 01:45
免费模卡在线制作(身边很多模特朋友都在用微模卡小程序制作模特卡,这是真的免费的吗)
2026年2月5日 13:45
微服务架构好处(基于容器的微服务架构带来的优势,说法正确的有哪些)
2025年6月28日 20:45
分页符删除后怎么表格中还有分页(WPS删除分页符后依然分页显示)
2026年5月10日 23:00
eclipse使用spring框架(在Eclipse中怎么集成spring和hibernate的配置)
2026年1月26日 21:30

















