好的,決定我會亂搞,並創建一個非常基本的泡泡排序算法,我只花了幾個小時,這只是我的第二次迭代的程序,現在我有點燒了,並且我似乎碰到了一堵牆。我的設計是,它會根據它在每一輪排序中所做的換位次數來生成並顯示一個整數(所以我可以留意它並確保它向下趨勢),並且它陷入了無限循環,不斷返回值'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