快速排序法
什么是快速排序法?我们需要结合下方的数据进行分析:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
28 |
4 |
36 |
2 |
65 |
14 |
55 |
17 |
|
L=28 |
R=17 |
|||||||
i=0 |
j=8 |
(1)在上面的表格中:
第1行:表示(数组的下标),从0开始到8。
第2行:表示(数组中的数据),共8个。
第3行:定义了一个(左标记L)开始时(指向)第1个数据,即28,
定义了一个(右标记R)开始时(指向)最后1个数据,即17。
第4行:定义变量i与j,分别作为(左边数据)与(右边数据)的数组下标,
刚开始时,(i等于0),即第1个数据的下标,
而(j等于8),是数据的总数量。
(2)首先,(变量i)从0开始,向右进行查找,直到找到大于(左标记L)的数据时停止,
同时,(变量j)从8开始,向左进行查找,直到找到小于或等于(右标记R)的数据
时停止。
(3)然后,判断(变量i)是否小于(变量j),
如果(判断成立),交换(变量i)与(变量j)对应的数据,
然后,重复执行步骤(2)。
如果(判断不成立),交换(左标记L的数据)与(变量j)对应的数据,
然后,以(变量j)的位置,把数据划分为(左右两个部分)。
(4)然后,(左右两个部分)重复执行步骤(2)与(3),
直到完成从小到大的排序。
以上就是快速排序的执行步骤,接下来,我们结合上面表格中的数据开始分析。