快速排序思想
这里按照从小到大排序讲解,快速排序是把一组数字中的一个数作为中轴,然后把数组中的比中轴大的数都移动到中轴的右边,把比中轴小的数都移动到中轴的左边。当移动过后再将中轴两边的数字分别进行上述操作,直到最后无法再分便完成排序。其实该过程是一个递归的过程。
图示
这里以 3 6 4 2 5 1 3 这组数字为例,为了便于处理,约定每次都把最左边的数字作为中轴。
1. 首先把最左边的3作为中轴,并在数组的最左边和最右边分别设置一个索引用于遍历数组。
2. 然后约定右边的索引先向左遍历,当遇到比中轴小的数字时停止遍历,然后此时把右边索引指向的数字移至左边索引的位置。
3. 右边的索引的数字移至左边后,开始让左边的索引向右依次遍历,当遇到比中轴大的数字时停止遍历,然后此时把左边索引指向的数字移至右边边索引的位置。