快速排序知识点


本节概述 本节知识点 本节总结

二、快速排序

首先从待排序序列Array中任意选择一个记录k作为轴值,然后将剩余的记录分割成两个子序列L和R。L中包含所有小于或等于轴值k的记录,都放在记录k的左边;R中包含所有大于轴值k的记录,都放在记录k的右边。原问题分解为子序列L和R这两个规模更小的同结构子问题,对L和R子序列递归进行快速排序,直到子序列中只含有0或1个元素时退出递归。 
    实际上快速排序名副其实,它几乎是最快的排序算法,被评选为20世纪十大算法之一。快速排序之所以快,主要因为它在分组时不是随便划分而是尽量将原数组划分为两半。
    下图是对序列{25,34,45,32,78,12,29,64}进行快速排序的动画显示: