Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: