首页 > 解决方案 > 快速排序中三个(平均值)的中位数?

问题描述

尽管阅读了这篇文章,但我似乎无法理解这是如何工作的——三值策略的中位数

我知道在快速排序中,我可以选择一个任意值作为我的支点并从那里开始。对于中位数三个快速排序,网上有文章说在未排序的数组中选择第一个、最后一个和中间的值,然后选择这3个值的中心值(例如56、12、45 -45将是挑选)。该示例还显示了 9 个值,因此可以轻松选择第一个、最后一个和中间值。

如果未排序的数组只有 8 个值34, 66, 57, 45, 20, 98, 92, 41怎么办?我的中值是否会分别45给出第一个、最后一个和中间值34, 45, 41

谢谢。

标签: algorithmsortingquicksort

解决方案


鉴于第一个、最后一个和中间值分别为 34、45、41,我的中值是否会是 45?

它将是 41,因为这是这三个数字的中位数。

通常,该方法是根据某种方案选择三个数字,并以中位数作为当前枢轴。

如果选择第一个、中间和最后一个的中位数,则需要考虑一些技术性问题,例如偶数大小的数组(如您的示例)、大小小于 3 的数组等。您在那里做的任何合理选择都可以.


推荐阅读