char's alphabetisch ordnen?



  • Hey,

    mir sind viele Sortieralgorithmen bekannt, in denen man Zahlen sortieren kann (z.B. Quicksort)! Gibt's auch einfache welche für die Sortierung von Namen (in char-Form) geeignet sind? Und wie setzt man diese in C++ um?

    MfG Rhoxx



  • anstatt zu prüfen zahl 1 < zahl 2 prüfst du eben ob name 1 alphabetisch vor name 2 , ansontsten ist das sortiertechnisch so ziemlic dasselbe



  • Ich habe das einmal so erledigt: Eine Funktion der man zwei chars übergibt, diese hat einen Konstanten std::vector der die Zeichen in gewünschter alphabetischer Reihenfolge enthält.

    Mit find_first_of() für beide chars kann ich leicht prüfen welches im Alphabet vorher kommt.

    Extra: Falls es nicht im std::vector ist (Zeichen unter 32 nicht eingefügt, etc.) kann man diese am Ende des Alphabets einsetzen. Sollten beide nicht enthalten sein: Normaler <-Operator.

    Edit: std::lexicographical_compare sollte man auch irgendwie daraufhin umbiegen können.

    MfG SideWinder



  • std::set sortiert schon automatisch ! (sortierte liste)
    beim ersten Template Parameter gibst an, was in dem set stehen soll (in deinem fall vielleicht string) und wenn zum sortieren der standard < operator ned verwendet werden soll, gibt man da die die Sortierfunktion an. std::lexicographical_compare sollte sich da verwenden lassen ...

    willst die Liste wirklich nur auf bedarf sortiren, gibt es den sortier allgorythmus der STL, denn einfach auf die liste anwendest. Dem sortieralgorythmus kannst die eigentliche Sortierfunktion auch uebergeben !

    Ciao ...


Anmelden zum Antworten