【发布时间】:2017-12-28 14:12:45
【问题描述】:
这里有什么问题?我有一个包含 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;
}
【问题讨论】:
-
如果
2500是集合的大小,那么for中的条件应该是i < 2500 - 1;:for (int i = 0; i < 2500 - 1; i++) {...} -
抛出异常时
i的值是多少,szamok中有多少条目?一些简单的调试应该会告诉您无效索引是什么,然后您就可以确定问题出在哪里。 -
如果数组中有 2500 个项目,则它们出现在索引 0-2499 处。当
i= 2499 时,您的代码最后一次通过其循环生成哪些索引?
标签: c# bubble-sort