Gå til indholdet

N183 Bubblesort

Du skal skabe en tom konsol app med følgende kode:

int[] tal = { 5, 1, 4, 2, 8, 0, 2, 7, 6, 3, 9, 5, 8, 1, 4, 2, 7, 6, 3, 0 };
BubbleSort(tal);
Console.WriteLine("Sorteret rækkefølge:");
foreach (var item in tal)
{
    Console.Write(item + " ");
}

private static void BubbleSort(int[] tal)
{
// kode mangler der sorterer tal efter bubblesort
}

Bubblesort er en enkel sorteringsalgoritme, der gentagne gange går igennem listen, sammenligner hvert par af tilstødende elementer og bytter dem, hvis de er i den forkerte rækkefølge. Processen gentages for hver element i listen, indtil listen er sorteret. Algoritmen er ikke særlig effektiv på store lister og anses generelt for at være en af de mindre effektive sorteringsalgoritmer, men den er nem at forstå og implementere, hvilket gør den til et godt udgangspunkt for at lære om sorteringsalgoritmer.

Selvom C# og .NET-frameworket tilbyder mange indbyggede sorteringsfunktioner, der er langt mere effektive end bubblesort, er det en nyttig øvelse at implementere bubblesort for bedre at forstå grundlæggende sorteringsalgoritmer og principperne bag dem.

Der er masser af sider omkring BubbleSort - se feks her og her.

Klik for at se et forslag til en løsning
int[] tal = { 5, 1, 4, 2, 8, 0, 2, 7, 6, 3, 9, 5, 8, 1, 4, 2, 7, 6, 3, 0 };
BubbleSort(tal);
Console.WriteLine("Sorteret rækkefølge:");
foreach (var item in tal)
{
    Console.Write(item + " ");
}
void BubbleSort(int[] tal)
{
    int temp;
    for (int i = 0; i < tal.Length - 1; i++)
    {
        for (int j = 0; j < tal.Length - i - 1; j++)
        {
            if (tal[j] > tal[j + 1])
            {
                temp = tal[j];
                tal[j] = tal[j + 1];
                tal[j + 1] = temp;
            }
        }
    }
}