QuickSort Algorithmus

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    QuickSort Algorithmus

    Hallo,
    ich habe mir vorgenommen, ohne c&p die Idee des Algos umzusetzen in VB.NET.

    Ich habe meine Arraylist mit verschiedenen Zahlen. Ich setze mir einen Zufallspunkt und alles was kleiner als der Zufallspunkt ist kommt vom HauptArray in den KleinerArray, alles was größer ist kommt in den GrößerArray.

    Das habe ich schon alles. Wenn ich jetzt die Funktion mit dem KleinerArray laufen lasse. Wird ja wieder ein neues kleinerArray und GrößerArray erstellt. Dabei geht mir z.B. das ursprüngliche erste GrößerArray verloren, da es ja nun für die kleinere Seite nochmal erstellt wird. Wie mach ich das, dass das ganze zusammen kommt?

    Danke
    bin mir nich sicher ob das in vb geht müsste aber gehen dynamisch arrays anlegen sprich so viele es braucht legt es neu an


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Wozu benötigst du noch Arrays zusätzlich zum ursprünglichen? Der Algorithmus setzt das so erst einmal nicht voraus (wie man zum Beispiel in der Animation von Wikipedia sehen kann).

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Renati“ ()

    Wenn Du einen Sortieralgorithmus nachimplementierst, ist es wichtig, dass Du ihn völlig verstanden hast.
    Das Problem ist, dass Du 1. einen (quasi) neuen Algorithmus hast und 2. ein neues Programm. Ein (großes) Programm hat immer Fehler, ein Algorithmus kann völlig fehlerfrei sein. Du musst sowohl Deinen Algorithmus als auch Dein Programm durcharbeiten und optimieren.
    Vielleicht nimmst Du Dir 10 Zettel, schreibst die Zahlen 1 bis 10 drauf und sortierst sie in der Reihenfolge, wie Dein Programm die Zufallszahlen ausspuckt. Und lege noch ein paar leere Zettel bereit, falls neue Instanzen angelegt werden. Dann machst Du schritt für Schritt mit Deinen Zetteln dasselbe, was Dein Programm macht. Wenn Dein Programm anders handelt, als Du Dir das vorstellst, musst Du eingreifen. ISt das Programm falsch oder der Algorithmus?
    Wenn dann alles funktioniert, sollte Dein Programm zu Deinem Algorithmus geworden sein.
    Schneller geht es natürlich, wenn Dein Algorithmus zu Deinem Programm geworden ist (setzt allerdings einen fehlerfreien Algorithmus voraus).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vllt versteh ich den Quicksort einfach nicht. Ich erklär mal wie ich ihn versteh:

    Ich habe eine Reihe von Zahlen

    Es wird ein Mittelpunkt festgelegt

    Alles links des Punktes wird in einen linken Array gepackt

    Alles rechts davon in den rechten Array gepackt





    Das ganze wird jetzt mit Array links und Array rechts ausgeführt.

    So widerspricht sich jedoch das ganze, denn habe ich zum ersten Mal aufgeteilt in links und rechts und führe das ganze mit links durch, wird ja links wieder in links und rechts unterteilt wobei das erste rechts überschrieben wird durch das linke rechts.
    Sieh Dir vielleicht mal das hier an:

    Quicksort

    Es werden keine neuen Instanzen angelegt, sondern Elemente getauscht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!