?
Hier der Quellcode:
#include <stdio.h>
#include <stdlib.h>
#define MAX 50
int a[MAX];
int rand_seed=10;
/* gibt Zufallszahlen zwischen 0 und 32767 zurück*/
int rand()
{
rand_seed = rand_seed * 1103515245 +12345;
return (unsigned int)(rand_seed / 65536) % 32768;
}
main()
{
int i,t,x,y,wahl;
char weiter[5];
do
{
system("cls");
printf("\n\t\t Sortierverfahren");
printf("\n\t\t~~~~~~~~~~~~~~~~~~");
printf("\n\nWelches Sortierverfahren moechten Sie waehlen? ");
printf("\n\nMoechten Sie Bubble-Sort verwenden, druecken Sie die 1!");
printf("\nMoechten Sie Quick-Sort verwenden, druecken Sie die 2!");
printf("\n\nBitte waehlen!");
printf("\n\n");
scanf("%i",&wahl);
/* füllt das Feld. Am Anfang ist i=0, danach wird getestet, ob i kleiner als die maximale
Zahl die ausgegeben werden soll, ist. Ist dies der Fall, so wird i um eins höher gezählt.*/
for (i=0; i < MAX; i=i+1)
{
a[i]=rand();
printf("%d\n",a[i]);
}
if(wahl==1)
{
/* sortieren der Felder. Ist x kleiner als die maximale Zahl-1, so wird x um eins erhöht./
for (x=0; x < MAX-1; x=x+1)
for (y=0; y < MAX-x-1; y=y+1)
if (a[y] > a[y+1])
{
t=a[y];
a[y]=a[y+1];
a[y+1]=t;
}
/* gibt sortierte Felder solange aus, bis der Maximalwert, der ausgegeben werden sollte,
erreicht ist./
printf("\n\nHier sind die Zahlen in sortierter Reihenfolge!\n");
printf("\n\n");
for (i=0; i < MAX; i=i+1)
printf("%d\n",a[i]);
}
if(wahl==2)
{
int feld[10];
int n;
int quicksort(int low, int high)
{
int h;
int i=low;
int j=high;
int x=feld[(low+high)/2];
do
{
while(feld[i]<x)i=i+1;
while(feld[j]>x)j=j-1;
if(i<=j)
{
h=feld[i];
feld[i]=feld[j];
feld[j]=h;
i=i+1;j=j-1;
}
}while(i<=j);
if(low<j) quicksort(low,j);
if(i<high)quicksort(i,high);
}
int main(int argc,char *argv[])
{
// Zufallsgenerator initialisieren
srand((unsigned) time(NULL));
// Felder mit Zufallszahlen belegen
for(n=0;n<=100;n=n+1)
feld[n]=1+rand()%100;
printf("\nHier stehen die unsortierten Zahlen!");
printf("\n\n");
// Ausgabe der unsortierten Zahlen
for(n=0;n<=100;n=n+1)
printf("%d ",feld[n]);
// Sortieren
quicksort(0,100);
printf("\n");
printf("\nHier stehen die sortierten Zahlen!");
printf("\n\n");
// Ausgabe der sortierten Zahlen
for(n=0;n<=100;n=n+1)
printf("%d ",feld[n]);
scanf("%i",&n);
}
}
printf("\n\n\nMoechten Sie fortfahren? ja/nein ");
scanf("%s",weiter);
}
while (weiter[0]=='j' || weiter[0]=='J');
}