Zum Inhalt springen

micha_at_info

Mitglieder
  • Gesamte Inhalte

    4
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von micha_at_info

  1. Hallo, der Compiler gibt ja keine Fehlermeldung, sonst würde ich ja nicht den Code posten, aber trotzdem danke. Werde es mal mit break probieren.
  2. Ich habe jetzt erst versucht das goto durch eine Funktion zu ersetzen. Aber es gibt irgendeinen Fehler. #include<iostream> using namespace std; int pivot(int* Array, int i, int r); int quicksort(int* Array, int l, int r) { int i,j,t,v; if(r>l) { i=l-1; j=r-1; v=Array[r-1]; while(1) { do i++; while(Array[i]<v); do j--; while(Array[j]>v); if(i>=j) { pivot(Array,i,r); } else { t=Array[i]; Array[i]=Array[j]; Array[j]=t; } } } } int pivot(int* Array, int i, int r) { int q; int l=0; q=Array[i]; Array[i]=Array[r-1]; Array[r-1]=q; quicksort(Array,l,i-1); quicksort(Array,i+1,r); } int main() { //Erzeuge benutzerdefiniertes Array int i,j,n; cout<<"Bitte geben sie die Laenge der Zahlenfolge ein: "; cin>>n; int Array[n]; for(i=0;i<n;i++) { cout<<"Zahl eingeben: "; cin>>Array[i]; } //unsortierte Ausgabe for(i=0;i<n;i++) { cout<<Array[i]<<" "; } cout<<endl; //quicksort funktionsaufruf quicksort(Array,1,n); //sortierte Ausgabe for(int i=0;i<n;i=i+1) { cout<<Array[i]<<" "; } cout<<endl; system("pause"); }
  3. Hallo, vielen dank für die schnelle Antwort. Ich versuche es ohne goto hinzubekommen, obwohl ich leider nicht genau weiss wie. Zu der "return 0" Rückgabe: Ich habe gelesen, dass eine Funktion immer ein return benötigt und eigentlich macht das auch keine Probleme. Am liebsten würde ich ja return Array schreiben, aber das geht ja nicht. Ich weiss auch, dass das Problem irgendwie mit diesem "goto pivot" zusammenhängt. Wenn ich das rausnehme macht das Programm ja genau das, was der Algorithmus sagt, wenn sich i und j nicht überschneiden. Also muss ich irgendwie den divide Teil richtig implementieren. Ach so, was ich noch anmerken möchte ist, dass es sich hier nicht um eine Hausaufgabe handelt oder ähnliches, sondern ich bereite mich auf eine Prüfung vor und möchte alles verstehen. Mir ist schon klar, dass es fertige Implementierungen und Vereinfachungen gibt und ich bitte auch nicht darum, dass einer eine fertige Lösung präsentiert, sondern so ein Tip wie von flshpixx ist wirklich Klasse. Ich mach mich jetzt über dieses goto her. cya
  4. Hallo, ich bin neu hier im Forum und auch Programmieren ist für mich Neuland. Nun habe ich ein Problem beim Implementieren von Quicksort. Den Algorithmus habe ich ja verstanden, aber irgendwie sortiert mein Programm nicht richtig, findet jemand den Fehler? #include<iostream> using namespace std; int quicksort(int* Array, int l, int r) { int i,j,t,q,v; if(r>l) { i=l-1; j=r-1; v=Array[r-1]; while(1) { do i++; while(Array[i]<v); do j--; while(Array[j]>v); if(i>=j) { goto pivot; } else { t=Array[i]; Array[i]=Array[j]; Array[j]=t; } } pivot: { q=Array[i]; Array[i]=Array[r-1]; Array[r-1]=q; quicksort(Array,l,i-1); quicksort(Array,i+1,r); } } return 0; } int main() { //Erzeuge benutzerdefiniertes Array int i,j,n; cout<<"Bitte geben sie die Laenge der Zahlenfolge ein: "; cin>>n; int Array[n]; for(i=0;i<n;i++) { cout<<"Zahl eingeben: "; cin>>Array[i]; } //unsortierte Ausgabe for(i=0;i<n;i++) { cout<<Array[i]<<" "; } cout<<endl; //quicksort funktionsaufruf quicksort(Array,1,n); //sortierte Ausgabe for(int i=0;i<n;i=i+1) { cout<<Array[i]<<" "; } cout<<endl; system("pause"); }

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...