(我的代码是用Java编写的,但问题不关乎编程语言;我只是在寻找算法思路)
问题如下: 我编写了一个方法,简单地查找数据集的中位数(以数组形式给出)。以下是实现方式:
public static double getMedian(int[] numset) {
ArrayList<Integer> anumset = new ArrayList<Integer>();
for(int num : numset) {
anumset.add(num);
}
anumset.sort(null);
if(anumset.size() % 2 == 0) {
return anumset.get(anumset.size() / 2);
} else {
return (anumset.get(anumset.size() / 2)
+ anumset.get((anumset.size() / 2) + 1)) / 2;
}
}
在我所就读的学校里,一位老师向我提出了重新编写查找中位数的方法的挑战,但是不能使用任何数据结构。这包括可以容纳多个值的任何内容,包括字符串、任何形式的数组等。我花费了很长时间来构思,但仍然束手无策。有什么好主意吗?