快速排序是一种很棒的排序思想,被称为20世纪最伟大的发明之一。
快速排序的基本思想:
- 任取一个元素为中心
- 将序列中所有比它小的元素放在其前面,比它大的元素放在其后面,从而形成两个子表
- 对两个子表分别做快速排序,直至子表中仅剩一个元素
将原先的一列元素划分成了两个子列元素,通过分而治之的思想进行排序,快速主要体现在两点上:
1、这两个子列可以放在不同的进程里面同时运行排序
2、根据一个元素A划分成两个子列后,子列中的元素只需要相互比较,不需要再与另一个子列中的值进行比较,少了很多冗余比较;而最简单的直接排序就做不到这一点。
但快速排序不适用于基本已经有序的排序队列,因为无法进行二分了,效率大大下降,适用于整体元素无序的排序。