快速排序算法的基本思想是:先找一个基准元素(比如待排序数组的第一个元素),进行一趟快速排序,使得该基准元素左边的所有数据都它小,而右边的所有数据都它大,然后再按此方法,对左右两边的数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数组变成有序序列。
比如我们现在对序列arr={-2,6,88,0,-4,56}这6个数进行排序:
0 | 1 | 2 | 3 | 4 | 5 |
-2 | 6 | 88 | 0 | -4 | 56 |
初始时待排序序列是整个序列,故首个元素为arr[0],首先选基准元素 key=arr[0]即-2,变量i指向当前序列首个下标,j指向最后一个下标的下一个下标,即:i=0; j=6;
0 | 1 | 2 | 3 | 4 | 5 | 6 |
-2 | 6 | 88 | 0 | -4 | 56 | |
i | j |
无论是对于变量i还是j,我们都是先移动再判断是否继续移动。首先++i