Sortierverfahren String-Vektor?



  • Hallo Leute,

    hier ein kurzer Codeausschnitt:

    class meineKlasse
    {
      private:
        vector <string> meinVektor;
    .
    .
    .
    };
    

    ich habe mit "vector <string> meinVektor" einen Vektor definiert. Ich benötige einen sehr schnelles Sortierverfahren. Ich dachte, dass hier ggf. quicksort geeignet sei. Nun habe ich zwar unter google eine quicksort-Funktion für Arrays gefunden und umgeschrieben, aber das Ergebnis der Sortierung ist falsch.

    Kann mir jemand mit einem Codeschnipsel weiter helfen?

    Zusatzbitte: Ideal wäre es, wenn das Sortierverfahren ein Flag mitschleift, wo ich ggf. die Unterscheidung zwischen Groß- und Kleinschreibung bei der Sortierung ein/ausschalten kann.

    Viele Grüße



  • Sortier-Funktionen haben in der Regel die Möglichkeit eine eigene Vergleichsfunktion anzugeben. Du musst darin also nur selber deine Vergleichskriterien definieren. In deinem Fall wäre das die beiden Strings in Groß- oder Kleinschreibung zu bringen und dann geeignet vergleichen.

    http://www.cplusplus.com/reference/algorithm/sort/



  • Müller war schneller aber einfach:

    #include <algorithm>
    std::sort (meinVektor.begin(), meinVektor.end());
    


  • Ich benötige einen sehr schnelles Sortierverfahren

    # Three-way radix quicksort (also called multikey quicksort): is a combination of radix sort and quicksort. Pick an element from the array (the pivot) and consider the first character (key) of the string (multikey). Partition the remaining elements into three sets: those whose corresponding character is less than, equal to, and greater than the pivot's character. Recursively sort the "less than" and "greater than" partitions on the same character. Recursively sort the "equal to" partition by the next character (key).

    Das ist das schnellste was es für Strings so gibt.
    Kannste ja mal nach suchen wenn du lustig bist. (Schneller als naiver Quick-Sort)



  • downtimes schrieb:

    Das ist das schnellste was es für Strings so gibt.

    Es gibt sehr viele "schnellste" Algorithmen für allgemeine Strings. Quicksort gehört auch dazu.

    Wenn der Threadersteller einen geeigneten Algorithmus haben will, muss er ein paar Infos über die Strings rausrücken.


Anmelden zum Antworten