快速排序算法,是一种对冒泡排序的改进。
快速排序是通过多次比较交换最终获得有序数组的算法过程。
快速排序思想:
1)首先要找到目标值,即以哪个值为基准来比较交换,一般均以数组第一个值为目标值。
2)从后往前依次与目标值进行比较,直至找到第一个比目标值小的值进行交换
3)从前往后依次与目标值进行比较,直至找到第一个比目标值大的值进行交换
4)经过第2,3步比较交换后,第2步目标值的下标到数组结尾的值均比目标值大;第3步目标值下标到数组头部的值均比目标值小
5)假设将第2,3步交换后的下标值做为"新数组"的头尾,重复2,3步,直至"新数组"长度为1
6)经过以上步骤,数组被以目标值下标为界点的左侧均比目标值小,右侧均比目标值大的无序数组
7)再将目标值左侧,右侧两"数组"重复以上步骤。直至头尾相等即快速排序完成
示例如下: