数据结构与算法学习笔记九 --- 快速排序算法
快速排序算法(Quick Sort) 快速排序算法是一种递归排序算法; 其 原理 是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 简单点理解就是:以序列中的任意一个元素为基准(一般以第一个元素),通过逐个比较后,找到这个基准元素的合适位置(即在基准元素的左边元素都比它小,右边都比它大),这时在将序列分成左右两个部分,在继续上述的操作,直到不能再分为止(只有一个元素),此时排序也就完成。 快速排序过程图 快速排序算法的python实现 快速排序算法的代码实现最主要的是找到基准元素的位置,然后分成两部分,再用递归的方法,重复实现一样的操作。 代码如下: def quick_sort ( alist , first , last ) : """快速排序""" # 参数first,last:指定序列排序的位置起始和终止下标 # 只有当first小于last时才退出排序,此时元素只有一个。 if first >= last : return alist else : mid_value = alist [ first ] low = first high = last while low < high : # high 左移 while