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++)