| 
|  
|  | 
| 
 
 
	
		|  | Programmierung quicksort; Probleme mit den Pivotelement |  |  
 
| 
| Benjo2309 |  
|  
 Forum-Newbie
 
 
 
|  |  
|  | Beiträge: 1 |  |  
|  |  
|  | Anmeldedatum: 06.06.22 |  |  
|  |  
|  | Wohnort: --- |  |  
|  |  
|  | Version: --- |  |  
|  |  |  
|  |  | 
|  Verfasst am: 06.06.2022, 15:13    
Titel: Programmierung quicksort; Probleme mit den Pivotelement |  |  
| Hallo, 
 ich habe ein ein Programm geschrieben, welches nach dem Quicksortverfahren sortiert.
 
 v steht für den Zeilenvektor
 e für das Pivotelement.
 
 Wenn ich als Pivotelement das Erste nehme, dann funktioniert alles korrekt, leider nicht für ein anderes Pivotelement.
 
 Beispiel:
 
 qsort22(['EineZeichenKette174'], 1)
 ans = '147EKZceeeeehiinntt'
 
 qsort22(['EineZeichenKette174'], 2)
 ans = '1477Zceeeehhiinnttt'
 
 Ich verstehe nicht warum mein EK verwindet und t und 7 auftaucht. Kann mir jemand weiter helfen? Liebe Grüße
 
 Mein Code:
 
 
 |  |  
|  |  |  
		| 
 
 |  
| 
| steve |  
|  
 Ehrenmitglied
 
 
   
 
|  |  
|  | Beiträge: 2.029 |  |  
|  |  
|  | Anmeldedatum: 03.09.07 |  |  
|  |  
|  | Wohnort: Wien |  |  
|  |  
|  | Version: R2024a |  |  
|  |  |  
|  |  | 
|  Verfasst am: 22.06.2022, 17:29    
Titel: |  |  
|  |  |   |  
| Hallo, 
 es sieht danach aus, dass der Fehler aus dieser Zeile resultiert:
 
 
 Denn hier startest du immer bei der Position 2 des Vektors. Bei e=1 ist das auch die richtige Position (e+1), da 1 das Pivotelement ist. Für e=2 müsste der Startpunkt jedoch 1 und 3 sein, wenn ich das Konzept des Quicksort richtig verstanden habe (Quicksort bei Wikipedia). Denn bei e>1 hast du einen Teil links und einen Teil rechts des Pivotelements, welche iterativ sortiert werden müssen.
 
 In deinem Code hast du quasi nur den rechten Teil berücksichtigt, was für den Spezialfall e=1 das richtige Ergebnis liefert, für alle anderen Werte von e aber nicht funktioniert, da jeweils der Teil links vom Pivotelement nicht berücksichtigt wird.
 
 Gelöst habe ich es jetzt nicht, aber ich hoffe, du kommst mit dieser Analyse weiter.
 
 Viele Grüße
 Steve
 _________________
 
 >> I told me to.
 
 ____________________________________
 Matlab Cheat Sheet
 goMatlab-Knigge - dran gehalten?!
 Schon in den FAQ gesucht?
 Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
 |  |  
|  |  
| 
| Harald |  
|  
 Forum-Meister
 
 
 
|  |  
|  | Beiträge: 24.502 |  |  
|  |  
|  | Anmeldedatum: 26.03.09 |  |  
|  |  
|  | Wohnort: Nähe München |  |  
|  |  
|  | Version: ab 2017b |  |  
|  |  |  
|  |  | 
|  Verfasst am: 22.06.2022, 20:02    
Titel: |  |  
| Hallo, 
 nach Steves Anstoß meine ich die Lösung zu wissen. In der von Steve genannten Zeile:
 
 verwenden.
 
 Grüße,
 Harald
 _________________
 
 1.) Ask MATLAB Documentation
 2.) Search gomatlab.de, google.de or MATLAB Answers
 3.) Ask Technical Support of MathWorks
 4.) Go mad, your problem is unsolvable ;)
 |  |  
|  |  
|     
 
 | 
 
 |  
| Einstellungen und Berechtigungen |  
| 
 | Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten.
 Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
 Du kannst deine Beiträge in diesem Forum nicht löschen.
 Du kannst an Umfragen in diesem Forum nicht mitmachen.
 Du kannst Dateien in diesem Forum posten
 Du kannst Dateien in diesem Forum herunterladen
 
 |  |  
 Impressum
 | Nutzungsbedingungen
 | Datenschutz
 | FAQ
 |
  RSS 
 Hosted by:
 
   
 Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
 
 MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
 
 
 |  |