Können Sie helfen, den Schnellsortierungsalgorithmus für das Array mit diesen Elementen zu verfolgen?

1 Antworten


  • Mein Verständnis von Schnellsortierung ist, dass Sie einen Eintrag im Array mit anderen Einträgen vergleichen und wenn der zu vergleichende Eintrag größer oder kleiner als der erste Eintrag ist, je nachdem, ob Sie aufsteigend oder absteigend sortieren möchten, tauschen Sie deren Positionen aus.
    Es gibt zwei gängige Methoden, eine funktioniert an Ort und Stelle und erfordert keinen weiteren Speicher und die andere arbeitet mit zwei Arrays, dem größeren als dem Array und dem kleineren als dem Array.
    Die von Ihnen gewählte Methode sollte sich nach der Menge an Speicherplatz richten, mit der Sie arbeiten müssen. In einer kleinen Liste, wie Sie sie haben, würde ich die In-Place-Version verwenden.
    Also im Grunde (absteigend sortieren) 65 mit 70 vergleichen, 70 ist größer, also tausche die Zahlen aus. Da alle diese Zahlen kleiner als 255 sind, können sie in ein einzelnes Byte passen und mit drei Maschinenbefehlen namens "exklusives oder" ausgetauscht werden. In den meisten Assemblersprachen ist es als "xor" oder "xr" codiert.
    Da wir 70 und 65 ausgetauscht haben, vergleichen wir 70 mit den Einträgen darunter. Jetzt würden wir 70 und 75 vergleichen. 75 ist größer, also tauschen Sie erneut aus und beginnen Sie mit dem Vergleichen von 75. Wenn Sie die gesamte Liste ohne Austausch durchgegangen sind, wird die Liste sortiert.

Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear