数据结构-快速排序

138 阅读1分钟

快速排序是线性表的一个排序算法,通过两个指针不断移动来对比元素从而换位。

算法思路:

1、线性表,指向左右两个位置的指针(下标)lp和rp,暂放数据的空间temp

2、先让lp指向开始位置,rp指向结尾位置,先把某一个位置的数据暂放temp,rp开始向左与temp比较,直到小于temp,把rp当前指向的元素放到lp中;随后lp开始向右与temp比较,直到大于temp,把lp当前指向的元素放到rp中;不断重复上面的步骤,直到lp与rp指向位置一致,再把temp放到lp、rp的位置,这样就完成了快速排序,线性表也将呈现排序状态。

image.png

使用快速排序的时候,因为需要不断与中间值(对比值)比较,所以选择中间值会很重要,一般是以趋于中位数为主。如果中间值非常小或者非常大,排序的效果并不是很明显。