给定未排序的数组,找到最大值和最小值 . 我试图以递归,分而治之的方式执行此操作,但我不断收到堆栈溢出错误 . 我调试了,我继续在递归调用中得到错误,但不知道什么是错误或如何解决它 .
我有静态的最小和最大变量 .
感谢您提供的信息和帮助!
static void findMaxMin(int[] array, int start, int end)
{
if (end == 2)
{
setMaxMin(array);
}
else
{
int mid = ((end) / 2);
findMaxMin(array, start, mid);
findMaxMin(array, mid + 1, end);
}
}
private static void setMaxMin(int[] array)
{
if (array[0] > array[1])
{
max = array[0];
min = array[1];
}
else
{
min = array[0];
max = array[1];
}
}
1 回答
这是一个简单的方法(没有递归):
请注意,我在这里使用了参数 . 这样做是为了简化代码 . 通常,我更愿意返回指定的类或tuple .
此外,LINQ有min和max扩展方法,你可以使用 - 所以整个事情变成这样的东西: