Hallo Community.
Ich stehe vor einer Aufgabe und weiss nicht ganz wie ich das realisieren soll.
Ich soll den Bogosort Allgorithmus programmieren ohne zusätzliche Funktionen zu benutzen.
Ich habe mir bereits Gedanken gemacht.
Also das Array hat 8 Felder bzw. 8 Elemente, diese sind vom Typ Int.
Die Elemente der Felder sind -1,0,-25,100,6,-3,-2,25.
Jetzt habe ich mir das so vorgestellt, dass ich zuerst eine For-Schleife schreibe, die von i = 1 mit der Bedingung i <= 8 bei i++ das Array durchläuft.
In der For-Schleife ist dann eine If Anweisung, die dann guckt ob das Element an der Stelle i größer ist als an der Stelle i + 1.
Falls das der Fall ist soll dann an der Zuffälligen Stelle r = rand() % 8 , die Elemente des Feldes an der Stelle r mit dem der Stelle i tauschen.
Also wie folgt.
Die Frage ist, wie kann ich das so schreiben, dass zuerst die Vertauschung kommt und dann die Abfrage ob die Elemente des Arrays an der i-ten Stelle kleiner ist als die i+1 Stelle. Daraufhin sollen alle Stellen auch die unsortierten Stellen nach der Vertauschung ausgegeben werden. Sobald das Array sortiert wurde, soll das Array ein letztes mal ausgegeben werden.
Ich hoffe das ich das Problem so gut wie möglich darstellen konnte.
freundliche Grüße
Ich stehe vor einer Aufgabe und weiss nicht ganz wie ich das realisieren soll.
Ich soll den Bogosort Allgorithmus programmieren ohne zusätzliche Funktionen zu benutzen.
Ich habe mir bereits Gedanken gemacht.
Also das Array hat 8 Felder bzw. 8 Elemente, diese sind vom Typ Int.
Die Elemente der Felder sind -1,0,-25,100,6,-3,-2,25.
Jetzt habe ich mir das so vorgestellt, dass ich zuerst eine For-Schleife schreibe, die von i = 1 mit der Bedingung i <= 8 bei i++ das Array durchläuft.
In der For-Schleife ist dann eine If Anweisung, die dann guckt ob das Element an der Stelle i größer ist als an der Stelle i + 1.
Falls das der Fall ist soll dann an der Zuffälligen Stelle r = rand() % 8 , die Elemente des Feldes an der Stelle r mit dem der Stelle i tauschen.
Also wie folgt.
C:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
main()
{
int unsortiert[] = {-1,0,-25,100,6,-3,-2,25};
int temp, r, r;
printf("unsortiertes Array:\n");
printf("---------------------\n");
for(i = 1; i <= sizeof(unsortiert)/sizeof(int); i++){
printf("%d. %d\n", i ,unsortiert[i-1]);
}
/* Vertauschung und Abfrage soll hier passieren.
srand(time(NULL));
for(j = 1; j <= 8; j++){
if(unsortiert[j-1] > unsortiert[j]){
temp = unsortiert[j];
r = rand()%8;
unsortiert[j] = unsortiert[r];
unsortiert[r] = temp;
}
}
*/
}
Ich hoffe das ich das Problem so gut wie möglich darstellen konnte.
freundliche Grüße