问题描述:
快速排序法的名字由来,排序步骤是什么,最坏情况下的排序次数如何计算得来的呢?
问题解答:
快速排序法的名字来源于其排序速度快的特点。它是由英国计算机科学家 Tony Hoare 于1960年提出的,最初被称为“分区交换排序”。后来因为其速度快而得名。
快速排序的基本步骤如下:
- 选择一个基准元素(pivot),通常是数组中的第一个元素。
- 将数组分为两个子数组:小于基准元素的元素组成的子数组和大于基准元素的元素组成的子数组。这一步称为分区操作(partition)。
- 对这两个子数组分别递归地进行快速排序。
- 递归的基准情况是子数组的大小为 0 或 1,此时子数组已经是有序的。
在最坏情况下,快速排序的排序次数可以通过递归树来分析。如果每次分区操作的基准元素都是数组中的最小(或最大)元素,那么就会出现树的高度为 n 的情况,其中 n 是数组的大小。在这种情况下,递归树会退化为一个非常不平衡的树,每一层的节点数都是 1,这时候需要进行 n−1 次递归调用。因此,最坏情况下的排序次数是.
详细解答,可以参考B站视频,或者维基百科描述。
L指针和R指针指的的数字对调。
L指针和R指针指到同一个数字的时候,
把基准P和刚刚L指针和R指针共同指向的数字对调一下。同时把三个指针全部移到左边,