私はこのバブルソートを最初に作成しようとしています。これが私の持っているものです。 何らかの理由で、配列が奇妙な形で印刷されています。 これは私が知る限り、文字でソートする必要があります。私のバブルソートで配列が正しくソートされないのはなぜですか?
LINQまたはArray.Sort()を使用せずにバブルソートを正しく行うにはどうすればよいですか。これは学校用ですので、バブルソートアルゴリズムを実行する必要があります。
ここに、プリントアウトのイメージがあります。バブルソートのために
class Program
{
static string[] animals = new string[] { "cat", "elephant", "tiger", "fish", "dolphin", "giraffe", "hippo", "lion", "rat", "string ray" };
static void Main(string[] args)
{
BubbleSort();
Console.ReadLine();
}
private static void BubbleSort()
{
bool swap;
string temp;
string[] animals = new string[] { "cat", "elephant", "tiger", "fish", "dolphin", "giraffe", "hippo", "lion", "rat", "string ray" };
for (int index = 0; index < (animals.Length - 1); index++)
{
if (string.Compare(animals[index], animals[index + 1], true) < 0) //if first number is greater then second then swap
{
//swap
temp = animals[index];
animals[index] = animals[index + 1];
animals[index + 1] = temp;
swap = true;
}
}
foreach (string item in animals)
{
Console.WriteLine(item);
}
}
}
配列内の正しい位置に単一の要素をバブリングするだけです(末尾に_meant_があると仮定すると、それより小さい場合は比較演算子を逆にします)。バブルソートでは、配列を複数回通過する必要があります。 –
私はCompareToをCompareToに切り替えて、foreachループですべてを追加しました。これで、2番目の値を除くすべてのrghtが出力されます。 –