快速排序算法简介

  快速排序是一种常用的排序,比选择排序快很多。我们来探讨一下快速排序实现的思想步骤。

 1.首先选定一个基准值

2.将大于基准值的元素放右边

3.将小于基准值的元素放左边

4.分别对左右子序列重复以上三步骤

举例说明:

10  20  9   15   1   8

假设选定最左边的10为基准值,我们假定有两个下标L,R

快速排序算法简介_第1张图片

1.从右边开始,将比基准值大的放右边,小于等于的放左边。这里8比基准值10小,所以移动到左边

快速排序算法简介_第2张图片

2.移动完R下标的时候,交替移动L下标,这里L指向了20,大于基准值10,所以移动到右边

快速排序算法简介_第3张图片

3.现在再次交替移动下标R,得到:

快速排序算法简介_第4张图片

因为1比基准值10小,所以有:

快速排序算法简介_第5张图片

4.现在交替移动下标L ,得到:

快速排序算法简介_第6张图片

此刻,L下标指向9,然后9比基准值10小,因为此刻正处于下标L,9不用往左移动,在这种情况下,需要继续将下标L往右移动,指向15,而15大于基准值10,所以放到右边

快速排序算法简介_第7张图片

5.现在交替移动下标R, 此时L,R下标重合,这时候,就把基准值10,放到下标重合的位置,得到:

快速排序算法简介_第8张图片

然后再对基准值左右两个子序列,重复以上步骤操作,直到序列长度为1(因为对于长度为1的序列不需要排序)。

这里用到了递归的思想,即可最终实现排序。

你可能感兴趣的:(算法)