快速排序
原理:
快速排序实际上是在待排序序列中选择一个数据,将这个数据放到它正确的位置上,并在此之后对这个位置的数据的左右两边分别重复上述动作,直到所有数据都处在了他们应该在的位置上则排序完成。
具体细节
如下图所示,待排序数组arr[6] = {5,10,8,3,7,9}
1、首先我们限定排序的左右边界left、right,同时设定左右两个游标,left_cursor和right_cursor,这里左边界就是5的位置即left = 0,右边界为right = 5,并让左右游标初始值等于左右边界,然后选择一个起始值start,这里让start = arr[left],即start = 5
2、然后我们从最右边开始将每个数与start进行比较,若arr[right_cursor] > start,则right_cursor向左移一步,若遇到arr[right_cursor] < start的情况,则arr[left_cursor] = arr[right_cursor],图中当right_cursor走到3的位置的时候会比start小,那么就让arr[left_cursor] = 3
3、然后再从left_cursor位置开始,依次与start比较,若arr[left_cursor] < start,则left_