欢迎光临散文网 会员登陆 & 注册

【编程笔记】快速排序

2023-01-02 14:36 作者:夕弦-Yamai_Yuzuru  | 我要投稿

快速排序的基本思路

以待排序列中的任意一个元素(例如取第一个)为中心,将所有较小(或相等)的元素放在它的前面,将所有较大的元素放在它的后面,形成左右子表;

然后重新选择每个子表的中心元素,按照这个规则进行调整,直到每个子表只有一个元素。至此,它便是一个有序的序列。

快速排序体现了分而治之的思想(分治法)。

优点:速度快,每趟可以确定不止一个元素的位置,而且呈指数增加。

前提:顺序存储结构

若待排记录的初始状态为按关键字有序时,快速排序将蜕化为冒泡排序,最坏时间复杂度为O(n%5E2),最好时间复杂度为O(n%5Clog_2%20n)。

快速排序是一种不稳定的排序方法。

快速排序性能

快速排序的过程

1.找到分界点x(诸如q[L],q[(L+R)/2],q[R]都行)

2.使左边所有数L<=X,右边所有数R>=X(和X相等的数在左右两边都有可能)

3.递归排序礼L,递归排序R

快速排序N-S图

祝大家元旦节快乐!

夕弦的元旦贺图

夕弦的图片由NovelAI生成,使用的模型以up主红心咖啡_Official的八舞模型为基底,并做了一定的更改训练

【编程笔记】快速排序的评论 (共 条)

分享到微博请遵守国家法律