有谁能告诉我,快速排序中上述问题的中位数是多少?请帮我举个例子。
答案 0 :(得分:1)
如果对这些值进行排序,则中位数将位于排序列表的中心
如果a <= b <= c
则b是a,b,c
12,5,8
- 中位数为8
答案 1 :(得分:1)
在QuickSort中,三次中位数是在每次迭代中选择一个数据透视的方法之一。 pivot是数组中的一个元素,用于通过将数组的所有值与数据透视进行比较来对数组进行分区。
理想的透视值是数组的中位数,但这需要时间来计算。因此,人们一直使用数组最左边的值作为简单的透视值。但是,当阵列已经排序时,这种情况很糟糕。
建议here的三分之一规则是在已经排序的数组中获得良好性能的方法之一。
答案 2 :(得分:0)
之前的答案很好,这是一个(更清晰的)例子:
{ 9, 7, 4, 12, 3, 1, 6, 1, 7, 4, 13, 2, 4, 15, 8, 9 }
随机选择三个值,三次:
{ 9, 7, 4 }
{ 2, 12, 15 }
{ 4, 1, 8 }
找出每个的中位数:7,12,4。 找到中位数:7
将此作为您的支点。
答案 3 :(得分:0)
3个数字的中位数是第二大数字。