Zahlen sortieren mit C
Lutz Donnerhacke
lutz at iks-jena.de
Son Dez 2 21:07:34 CET 2001
* Matthias Czapla wrote:
>sortiert = TRUE;
>
>while (sortiert) {
> sortiert = FALSE;
> for (i = 0; i < n - 1; i++)
> if (x[i] > x[i+1]) {
> h = x[i];
> x[i] = x[i+1];
> x[i+1] = h;
> sortiert = TRUE;
> }
>}
Bubble Sort ist nur auf einer Einregistermaschine mit Trommelspeicher
effizient.
Es geht übrigens so: Annahme: Es sei sortiert. Wenn zwei Stellen falsch
sortiert sind, korrigiere die Annahme und tausche.
template <class T> void swap (T a, T b) {T c = a; a = b; b = c;}
template <class T, size_t len>
void bubble_in_place (T[len] feld) {
bool sort;
do {
sort = TRUE;
for (size_t i=1; i<len; i++)
if (feld[i] > feld[i-1]) {
sort = FALSE;
swap (feld[i], feld[i-1]);
}
} while (!sort);
}
--
tlug Mailingliste
Archiv: http://www.tlug.de/archiv/
http://schwarz.thueday.de/mailman/listinfo/tlug_allgemein