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