合并排序算法 "IndexOutOfRangeException"
MergeSort Algorithm "IndexOutOfRangeException"
我一直在阅读算法简介并尝试实现伪代码,但我似乎无法查明是什么导致了 IndexOutOfRangeException
。
合并
The error happens at left[i] < right[j]
static void Merge(int[] array, int start, int middle, int end)
{
i = 1;
j = 1;
for (k = start; k < end; k++)
{
if (left[i] < right[j])
{
array[k] = left[i];
i = i + 1; // -> i++;
}
else
{
array[k] = right[j];
j = j + 1; // -> j++;
}
}
}
已解决
I solved it by setting all i
and j
variables to 0
and k
to k = start - 1
您在这一行遇到错误:
如果(左[i] < 右[j])
因为 i 超过 left 数组当它变为 6 时的长度,数组 left 只有 6 个元素。
使用调试的时候很容易搞清楚
我一直在阅读算法简介并尝试实现伪代码,但我似乎无法查明是什么导致了 IndexOutOfRangeException
。
合并
The error happens at
left[i] < right[j]
static void Merge(int[] array, int start, int middle, int end)
{
i = 1;
j = 1;
for (k = start; k < end; k++)
{
if (left[i] < right[j])
{
array[k] = left[i];
i = i + 1; // -> i++;
}
else
{
array[k] = right[j];
j = j + 1; // -> j++;
}
}
}
已解决
I solved it by setting all
i
andj
variables to0
andk
tok = start - 1
您在这一行遇到错误:
如果(左[i] < 右[j])
因为 i 超过 left 数组当它变为 6 时的长度,数组 left 只有 6 个元素。
使用调试的时候很容易搞清楚