ok、バブルの並べ替えアルゴリズムを非常に基本的なものにすることにしました。私は2時間しか費やしていませんでした。これはプログラムの2回目の繰り返しです。今は燃えています。私は少し壁に当たったようだ。私はソートの各ラウンドで行った転置の数に基づいてIntegerを生成して表示するように設計しました(したがって、私はそれを見守り、それが下降トレンドであることを確かめることができます)。ループし、値 '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