1、因为该算法是Divide-And-Conquer思想的一个实现,所以本文将以Divide-And-Conquer思想对其进行分析。
2、首先,假设所要排序的数字存储在数组S中,则该算法的操作可以拆分为两部分:
3、在S中选出一个元素v;将S数组分为三个子数组。其中v这个元素单独形成子数组1,比v小的元素形成子数组2,比v大的元素形成自数组3.
4、分别对子数组2和子数组3进行前两步操作,实现递归排序;返回时,依次返回S1,V,S2;
5、该程序具有平均运行时间T(n) = O(nlgn), 最差运行时间T(n) = O(n^2);
6、本文将对快速排序算法的基本惯栲狠疲理论和编程实践方面做作一个全面的讲解。在本文讲解中,将忽略很多细枝末节,试图给读者形成一个非常具体的快速排序形象。