找到数组的中间元素

sen*_*hil 5 algorithm

可能重复:
如何在O(n)中找到长度为n的未排序数组中的第k个最大元素?

大家好,我在采访中遇到了一个问题.

题:

将给出整数数组作为输入,您应该在排序时找到中间元素,但不进行排序.

例如.

输入:1,3,5,4,2

输出:3

对给定的输入数组进行排序时,它将是1,2,3,4,5,其中中间元素为3.

您应该在一次通过中找到它而不进行排序.

对此有何解决方案?

Joh*_*ski 0

对我来说,听起来你可以直接使用std::nth_element - 不知道这是否是一个可以接受的答案。