C#冒泡排序错误?
C# Bubble sort error?
这里有什么问题?我有一个包含 2500 个随机数的块,我想用冒泡排序对它们进行排序。但是当我 运行 我得到这个程序时:
System.IndexOutOfRangeException
此后的错误代码:
if (szamok[i] > szamok[i + 1]).
(抱歉英语不好:/)
int r = 2500;
int seged;
while (r > 1)
{
for (int i = 0; i < 2500; i++)
{
if (szamok[i] > szamok[i + 1])
{
seged = szamok[i + 1];
szamok[i + 1] = szamok[i];
szamok[i] = seged;
}
}
r = r - 1;
}
错误说明:您的索引超出范围。您正在尝试访问此数组中最后一个元素之后的数组中的元素。
szamok[i] > szamok[i + 1]
行似乎是罪魁祸首。 +1 太多了。
尝试改变你的循环,这样你就不会访问最后一个元素,而只会访问倒数第二个元素:
for (int i = 0; i < (2500-1); i++)
这里有什么问题?我有一个包含 2500 个随机数的块,我想用冒泡排序对它们进行排序。但是当我 运行 我得到这个程序时:
System.IndexOutOfRangeException
此后的错误代码:
if (szamok[i] > szamok[i + 1]).
(抱歉英语不好:/)
int r = 2500;
int seged;
while (r > 1)
{
for (int i = 0; i < 2500; i++)
{
if (szamok[i] > szamok[i + 1])
{
seged = szamok[i + 1];
szamok[i + 1] = szamok[i];
szamok[i] = seged;
}
}
r = r - 1;
}
错误说明:您的索引超出范围。您正在尝试访问此数组中最后一个元素之后的数组中的元素。
szamok[i] > szamok[i + 1]
行似乎是罪魁祸首。 +1 太多了。
尝试改变你的循环,这样你就不会访问最后一个元素,而只会访问倒数第二个元素:
for (int i = 0; i < (2500-1); i++)