数据结构中的排序算法有:插入类排序、交换类排序、选择排序、堆排序、归并排序、桶排序。而交换类排序包括:冒泡排序和快速排序。
其中:快速排序(不稳定的排序)
特点:序列越无序,效率越高,快速排序是基于原问题分解成多个子问题,再递归地求解各个子问题。
原理:每次选任一元素作为枢轴(一般选第一个元素),将比枢轴小的元素都放到枢轴前面,比枢轴大的元素都移到枢轴后面。(即类比于:每次选一个标兵,比该标兵矮的同学站左边,比标兵高的同学站右边)
注:下列两种方法的排序都是从小到大排序
方法一:采用递归(较为容易理解)

1 |
|
最好时间复杂度:O(nlogn)
最坏时间复杂度:O(n^2)
空间复杂度:O(nlogn)