快速排序枢轴

2023-11-22

使用快速排序对以下数组 a 进行排序,

[6, 11, 4, 9, 8, 2, 5, 8, 13, 7]

主元应选择为第一个和最后一个元素的算术平均值,即(a[0] + a[size - 1]) / 2 (rounded down).

显示所有重要步骤,例如分区和算法的递归调用。


我了解如何使用快速排序对数组进行排序,但是我不确定如何计算枢轴。

枢轴的计算方法是6 + 7 = 13 then 13 / 2 = 6.5(向下舍入是6)所以枢轴是2(即第六个元素)?

我知道小于主元的元素出现在左侧,大于主元的元素出现在右侧,并且分区重复对子数组进行排序的这一步骤。

任何帮助将不胜感激。


对于快速排序,枢轴可以是您想要的任何元素。 查看维基百科.

这个问题很容易解决,选择一个随机索引对于枢轴,选择中间指数分区的或(特别是对于较长的分区)选择第一个、中间和最后一个元素的中位数枢轴的分区

因此三个选择:

  • 第一个元素
  • 中元
  • 第一个、中间和最后一个的中位数。

在你的情况下使用第一个和最后一个元素的平均值value会给你:

6 + 7 = 13
13 / 2 = 6.5
6.5 rounded down = 6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速排序枢轴 的相关文章

随机推荐