核心:快排是一种采用分治思想的排序算法,大致分为三个步骤。
先来一张动图看看快速排序的过程。
3
作为基准lo
指针指向元素6
, hi
指针指向4
, 移动lo
直至其指向的元素大于等于3
, 移动hi
直至其指向的元素小于3
。找到后交换lo
和hi
指向的元素——交换元素6
和2
。lo
递增,hi
递减,重复步骤2,此时lo
指向元素为5
, hi
指向元素为1
. 交换元素。lo
递增,hi
递减,发现其指向元素相同,此轮划分结束。递归排序元素3
左右两边的元素。与归并排序的区别:
Robert Sedgewick 在其网站上对 Quicksort 做了较为完整的介绍,建议去围观下。