Zahlen sortieren mit C

Matthias Czapla lal at grmblpfz.ath.cx
Son Dez 2 15:03:46 CET 2001


On Sun, Dec 02, 2001 at 01:40:30PM +0100, JAY wrote:
> sortiert. In der Praxis sieht es so aus, als wuerde
> es die Sortierschleife nur einmal durchlaufen und
> deshalb nicht vollstaendig sortieren.
> [...] 
>        do{
>            sortiert = TRUE;
             ^^^^^^^^^^^^^^^^

>            for(i = 0; i < n-1; i++)
>             if(x[i+1] < x[i])
>            {
>                /*Tauschen und Merker setzen */
>                h = x[i]; x[i] = x[i+1]; x[i+1] = h;
>             }
>            } while (sortiert == FALSE);
               ^^^^^^^^^^^^^^^^^^^^^^^^^
Da die Bedingung falsch ist (da sortiert TRUE ist), wird es nicht noch
nach mal durchlaufen.
Vielleicht eher so:

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;
		}
}

Gruss
lal

-- 
tlug Mailingliste
Archiv: http://www.tlug.de/archiv/
http://schwarz.thueday.de/mailman/listinfo/tlug_allgemein