Sorting 快速排序-无法识别枢轴

Sorting 快速排序-无法识别枢轴,sorting,quicksort,Sorting,Quicksort,我试着理解快速排序,我得到了大致的想法,但我对下面的问题有困难。是否有一种简单的方法可以根据每次迭代后的数组确定正在使用哪个枢轴 Consider the following array and its state after iterations of QuickSort on the array: Initial Array: 32, 12, 17, 73, 40, 88, 16, 75 After Iter 1: 32, 12, 17, 40, 16, 73, 88, 75 Aft

我试着理解快速排序,我得到了大致的想法,但我对下面的问题有困难。是否有一种简单的方法可以根据每次迭代后的数组确定正在使用哪个枢轴

Consider the following array and its state after iterations of QuickSort on the array: 

Initial Array: 32, 12, 17, 73, 40, 88, 16, 75 
After Iter 1: 32, 12, 17, 40, 16, 73, 88, 75 
After Iter 2: 12, 16, 17, 40, 32, 73, 88, 75 
After Iter 3: 12, 16, 17, 40, 32, 73, 88, 75 
After Iter 4: 12, 16, 17, 32, 40, 73, 88, 75 
After Iter 5: 12, 16, 17, 32, 40, 73, 75, 88 
命名此快速排序执行中使用的轴选择策略

提示:检查在每个阶段选择什么值作为轴心。记得 该快速排序首先递归地对左子数组及其左子数组进行排序
对右侧子数组进行排序。

选择任何元素作为轴,然后在第一次迭代中,所有小于轴的元素都放置在轴的左侧,大于轴的元素则放置在轴的右侧。这意味着如果需要,也可以在阵列中提前交换枢轴。了解这一点并查看迭代应该有助于确定轴心


例如,在您的上述案例中,我相信中间元素被选为枢轴,即73。在第一次迭代后,小于它的所有元素将向左移动,大于它的所有元素将向右移动。

选择任何元素作为轴心,然后在第一次迭代中,小于轴心的所有元素将被放置在轴心的左侧,大于轴心的元素将被放置在右侧(如果它们尚未被放置)。这意味着如果需要,也可以在阵列中提前交换枢轴。了解这一点并查看迭代应该有助于确定轴心


例如,在您的上述案例中,我相信中间元素被选为枢轴,即73。在第一次迭代之后,所有小于它的元素都会向左移动,大于它的元素会向右移动。

它使用的是选择中间值的最具成本效益的解决方案。这很容易选择,并且在数据已经排序(或大部分排序)时具有很好的效率。它使用的是选择中间值的最经济高效的解决方案。这很容易选择,当数据已经排序(或大部分排序)时效率很高。谢谢,这就是我要找的。欢迎。请记住,这只是选择pivot的方法之一。一般意图是理想情况下,pivot总是将数组分成两半。如果它主要是这样做的,那么我们将获得(nlogn)平均案例时间。如果不是这样,我们可能会遇到最坏的情况。谢谢,这就是我要找的。欢迎光临。请记住,这只是选择pivot的方法之一。一般意图是理想情况下,pivot总是将数组分成两半。如果它主要是这样做的,那么我们将获得(nlogn)平均案例时间。如果不是这样,我们可能会遇到最坏的情况。