好的,决定我会乱搞,并创建一个非常基本的泡泡排序算法,我只花了几个小时,这只是我的第二次迭代的程序,现在我有点烧了,并且我似乎碰到了一堵墙。我的设计是,它会根据它在每一轮排序中所做的换位次数来生成并显示一个整数(所以我可以留意它并确保它向下趋势),并且它陷入了无限循环,不断返回值'36'。为什么我的排序算法产生无限循环? C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
bool sorted = false;
int[] data = new int[100];
data = GenerateData(data);
while (sorted == false)
{
int count = Sort(data);
if (count == 0)
{
sorted = true;
}
else
{
Console.WriteLine("{0}", count);
}
}
}
public static int[] GenerateData(int[] data)
{
Random num = new Random();
for (int x = 0; x < 100; x++)
{
data[x] = num.Next(0, 99);
}
return data;
}
public static int Sort (int[] data)
{
int TempA = 0;
int TempB = 101;
int count = 0;
for (int x =0; x<100; x++)
{
TempA = data[x];
if ((x + 1) < 100)
{
TempB = data[(x + 1)];
}
else
{
TempB = 101;
}
if (TempA > TempB)
{
data[x++] = TempA;
data[x] = TempB;
count++;
}
}
return count;
}
}
}
听起来像一个好的调试器会很有用的情况 – Plutonix
如果您向Sort方法添加注释,以解释您到底想要完成什么,那真的会有所帮助。很多是硬编码的,这实际上让我很难解析你实际上在做什么。 – Prescott
在写作时没有考虑到这一点。评论会非常有帮助。 – Jonathan