Sortieren von Kursen mit dem Bubblesort-Algorithmus

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du eine Liste von Programmierkursen mit dem Bubblesort-Algorithmus organisierst. Die Kurse werden in alphabetischer Reihenfolge sortiert, was es dir ermöglicht, die Programmiersprachen, die du gelernt hast, leicht zu sehen und zu zusammenfassen.

👀 Vorschau

$ gcc courses.c -o courses
$./courses
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie man die Länge eines Arrays richtig berechnet
  • Wie man den Parametertyp einer Sortierfunktion modifiziert
  • Wie man die Vergleichs- und Vertauschlogik im Sortieralgorithmus korrigiert

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Eine Liste von Programmierkursen mit dem Bubblesort-Algorithmus zu organisieren
  • Die Wichtigkeit der richtigen Berechnung der Arraylänge und der Funktionsparametertypen zu verstehen
  • Die richtige Vergleichs- und Vertauschlogik in einem Sortieralgorithmus anzuwenden
  • Deine Fähigkeit, Schritt-für-Schritt-Anweisungen zu befolgen und vorhandenen Code zu modifizieren, um das gewünschte Ergebnis zu erzielen

Korrektur der Arraylängenberechnung

In diesem Schritt lernst du, wie du die Länge des courses-Arrays richtig berechnest.

  1. Öffne die Datei courses.c, die sich im Verzeichnis /home/labex/project/ befindet.

  2. Suche die folgende Zeile des Codes:

    int n = strlen(courses);

    Diese Zeile verwendet die strlen-Funktion, um die Länge des courses-Arrays zu berechnen, was falsch ist. Die strlen-Funktion wird verwendet, um die Länge eines Strings zu berechnen, nicht eines Arrays.

  3. Ersetze die obige Zeile durch die folgende:

    int n = sizeof(courses) / sizeof(courses[0]);

    Diese Zeile verwendet den sizeof-Operator, um die Gesamtgröße des courses-Arrays zu berechnen und dividiert sie dann durch die Größe eines einzelnen Elements, um die Anzahl der Elemente im Array zu erhalten.

Ändern des Parametertyps der Sortierfunktion

In diesem Schritt lernst du, wie du den Parametertyp der sort-Funktion ändern kannst.

  1. In der Datei courses.c finde die Definition der sort-Funktion:

    void sort(char p[], int n)
  2. Ändere den Parametertyp von char p[] zu char *p[]. Die aktualisierte Funktionsdefinition sollte so aussehen:

    void sort(char *p[], int n)

    Diese Änderung ist erforderlich, da wir es mit einem Array von Zeichenketten (einem Array von Zeigern) zu tun haben, nicht mit einer einzelnen Zeichenkette.

Korrektur der Vergleichs- und Vertauschlogik

In diesem Schritt lernst du, wie du die Vergleichs- und Vertauschlogik in der sort-Funktion korrigierst.

  1. In der sort-Funktion finde den folgenden Code:

    if (k!= j)
    {
        tmp = p[k];
        p[k] = p[i];
        p[i] = tmp;
    }
  2. Ersetze die Bedingung if (k!= j) durch if (k!= i). Der aktualisierte Code sollte so aussehen:

    if (k!= i)
    {
        tmp = p[k];
        p[k] = p[i];
        p[i] = tmp;
    }

    Diese Änderung ist erforderlich, um zu überprüfen, ob das kleinste Element in der aktuellen Iteration (indiziert durch i) gefunden wurde.

Nach Abschluss dieser drei Schritte sollte deine courses.c-Datei für die Kompilierung und Ausführung bereit sein. Du kannst nun mit dem nächsten Schritt fortfahren.

  1. In der sort-Funktion vervollständige den Abschnitt // TODO: wie folgt:

    {
         if (strcmp(p[j], p[k]) < 0)
         {
             k = j;
         }
    }
  2. Führe den folgenden Befehl aus:

gcc courses.c -o courses
./courses
  1. Verifiziere, dass das Programm die erwarteten Ausgabe liefert.
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP
✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.