Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C by dfg ( 15 years ago )
/*********************************************************************
*
* Aufgabe 403d
*
* Verwirklichen Sie den Quicksort-Algorithmus in C. Schreiben Sie
* dazu die Funktion Quicksort.
*
* Die main-Funktion ist bereits vorgegeben. Sie kümmert sich um das
* Einlesen und Ausgeben der Zahlen. Lassen Sie diese Funktion bitte
* unbedingt unverändert. Implementieren Sie lediglich eine Funktion
* Quicksort nach obigem Algorithmus.
*
*********************************************************************/
#include <stdio.h>
int Feld[100];
void Quicksort(int links, int rechts);
int main()
{
int i=0, j=0;
/* Einlesen der Liste */
do {
printf("Bitte geben Sie eine Zahl ein oder Null zum Abbruch: ");
scanf("%i", &Feld;[i]);
if (Feld[i] == 0) break;
++i;
} while (i < 100);
/* Sortieren der Liste */
Quicksort(0, i-1);
/* Ausgeben der sortierten Liste */
for (j=0; j<i-1; ++j) {
printf("%i ", Feld[j]);
}
printf("%i\n", Feld[i-1]);
return 0;
}
void Quicksort(int links, int rechts)
{
int i, j, x, tmp;
i = links; j = rechts;
x = Feld[(links + rechts) / 2];
do
{
while (Feld[i] < x)
i++;
while (x < Feld[j])
j--;
if (i <= j)
{
tmp = Feld[i];
Feld[i] = Feld[j];
Feld[j] = tmp;
i++;
j--;
}
}
while (i < j);
if (links < j)
Quicksort(links, j);
if (i < rechts)
Quicksort(i, rechts);
}
Revise this Paste