-
简介:
快速排序是由东尼·霍尔所发展的一种排序算法。
在平均状态下,排序n个项目要O(nlogn)次比较,在最坏的状态下则需要O(n²)次比较,但这种情况并不常见。
事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环(inner loop)可以在大部分架构上很有效率的被实现出来。
快速排序使用分治法策略来吧一个串行分为两个子串行,通俗来讲就是把一个数列变成了两个数列。
快速排序又是一种分而治之思想在排序算法上的典型应用,从本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法
快速排序非常的快,并且效率高,它是处理大数据最快的排序算法之一,在大多数情况下都比平均时间复杂度为 O(n logn) 的排序算法表现要更好。这是在《算法艺术与信息学竞赛》中的解释:
快速排序的最坏运行情况是 O(n²),比如说顺序数列的快排。但它的平摊期望时间是 O(nlogn),且 O(nlogn) 记号中隐含的常数因子很小,比复杂度稳定等于 O(nlogn) 的归并排序要小很多。所以,对绝大多数顺序性较弱的随机数列而言,快速排序总是优于归并排序。
-
算法步骤:
- 从数列中挑出一个元素,把它叫做
基准值
. - 重新排序数组,所有比
基准值
小的数排在基准值
的左边,所有比基准值
大的数排在基准值
的右边,等于基准值
的数可在排在任意一边
- 从数列中挑出一个元素,把它叫做
新手笔记之快速排序
最新推荐文章于 2023-11-26 21:55:38 发布
快速排序是一种由东尼·霍尔提出的排序算法,平均时间复杂度为O(nlogn),在许多情况下表现优于其他O(nlogn)算法。它采用分治策略,将数列分为两部分并递归排序。本文将介绍快速排序的算法步骤及代码实现。
摘要由CSDN通过智能技术生成