C++ Bubblesort

Bubblesort in C++



Bubblesort in C++
Eines der am einfachsten zu realisierenden Suchalgorithmen (aus Programmierer sicht) ist Bubblesort. Dieser Algorithmus ist zwar wenig effektiv - da es eine quadratische Laufzeit O(n²) aufweist, wird jedoch wegen seiner Einfachheit häufig als Programmieraufgabe im Studium und in der Schule verwendet.

Hier ein kleines Programmstück, welches über die Argumentenliste eine beliebig lange Folge von Eingaben einliest und diese sortiert.


/*
* bubblesort.cpp
* Liest ueber Argumente argv[] beliebig viele Werte ein und sortiert diese mit Bubblesort
*/
 
#include <iostream>
#include <string>
using namespace std;
 
int main(int argc, char *argv[])
{
    // Feldgroesse Initialisieren
    argc --;
    string *arrNumber = new string[argc];
 
 
    // Beende wenn keine Argumente vorhanden
    if (argc == 0)
    {
        cout << "no input";
        return 0;
    }
 
    // Alle Argumente in neues String-Feld einlesen
    for (int i = 0; i < argc; i++)
        arrNumber[i] = argv[i+1];
 
 
    // Eintraege sortieren
    for (int i = argc; i > 1; i--)
    {
        // groessten Wert nach hinten schieben
        for (int j = 0; j < i - 1; ++j)
        {
            if (arrNumber[j] > arrNumber[j + 1])
            {
                // Werte tauschen
                string tmp = arrNumber[j + 1];
                arrNumber[j + 1] = arrNumber[j];
                arrNumber[j] = tmp;
            }
        }
    }
 
 
    // Eintraege ausgeben
    for (int i = 0; i < argc; ++i)
        cout << arrNumber[i] << ' ';
 
 
    // Reservierten Speicher wieder freigeben und beenden
    delete[] arrNumber;
    return 0;
}
// Programmstart
./bubblesort das ist ein Test
 
// Ausgabe
das ein ist Test
 
 
 
// Programmstart
./bubblesort 40 90 30 10
 
// Ausgabe
10 30 40 90