0

我想创建一个插入排序,但我不能再进一步了。我在路上解决了它,直到我越界,在我无法解决的第二个“for-command”中。我不确定我是否走在正确的道路上,但我想让解决方案保持简单。

int arrayzähler = 0;
int[] Speicherarray = new int[randomarray.Length];
//ausgabearray[1] = randomarray[1]; //für vergleich

foreach (int wert in randomarray)
{
    if (wert == randomarray[0])
    {
        Speicherarray[0] = wert;
        ausgabearray[0] = wert;
        arrayzähler++;
        continue; // erster wert = ausgabearray[0]
    }

    arrayzähler++;

    for (int i = arrayzähler - 1; i >= arrayzähler - 1; i--)
    {
        for (int a = arrayzähler - 2; a >= arrayzähler - 2; a--)
        {
            if (Speicherarray[i] < Speicherarray[a])
            {
                Speicherarray[a] = Speicherarray[a + 1];
            }
            else if (Speicherarray[i] >= Speicherarray[a])
            {
                Speicherarray[a] = wert;
                ausgabearray[i] = Speicherarray[i];
            }
        }
    }
}
4

1 回答 1

2

这是插入排序的精确编码,

public void Sort(int[] collection)
    {
        int inner, temp;
        for (int i = 1; i < collection.Length; i++)
        {
            temp = collection[i];
                 inner = i;
            while (inner > 0 && collection[inner - 1] >= temp)
            {
                collection[i] = collection[inner - 1];
                --inner;
            }
            collection[inner] = temp;
        }
        Console.WriteLine("Printing Insertion Sorted Items");
        Print();                           
    }
于 2012-09-27T08:44:04.407 回答