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