基础算法篇之快速排序
每日一个算法之快速排序
1 算法原理
快排的原理实际上是对冒泡算法的一种改良,大致的过程的是这样的,对于一组数列,选取其中一个作为对比对象,一般将第一个作为比较对象,大于这个数据的放在右边,小于这个的放在左边,之后左边和右边又分别组成一个数据,
这样就完成了一波排序,之后再对左边和右边的数列进行刚才的排列,直到完成所有的数据排序,如此就完成了该数组的排序过程
2 代码实现
#!/usr/bin/env python # -*- coding:utf-8 -*- # 快排算法 def quietSort(List): if len(List) < 2: return List centerNum = List[0] LessList = [sub for sub in List if sub < centerNum] GreatList = [sub for sub in List if sub > centerNum] return quietSort(LessList) + [centerNum] + quietSort(GreatList) if __name__ == '__main__': res = quietSort([2, 4, 1, 3, 8, 7, 5, 9, 123, 23423, 23]) print(res)