原理:快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1960年提出。它的根本头脑是:通过一趟排序将要排序的数据分割成独立的两部门,此中一部门的全部数据都比别的一部门的全部数据都要小,然后再按此方法对这两部门数据分别举行快速排序,整个排序过程可以递归举行,以此到达整个数据变成有序序列。 快速排序:是给基准数据找其精确索引位置的过程. 起首确定一个基准数:比方下图的基准数一样平常都是设置第一个数,基准数tmp=49 ,基准数在与剩下的n-1的部门举行,从末了一个数比力,若基准数小于举行互换,否者大于大概即是基准数不举行互换。此时将基准数与倒数第二个数举行比力27小于49,27和49举行互换。然后基准数49与第二数举行比力,若基准数=49大于第二个数38不互换,再与第三个数比力49<65 ,举行互换,以此类推,如下图
动图:
使用python 代码实现:
结果:
小结:时间复杂度:最好环境(待排序列靠近无序)时间复杂度为O(nlog2n) 最坏环境(待排序列靠近有序)时间复杂度为O(n2) 匀称时间复杂度为O(nlog2n)。
! |