Gibt es eine Zeichenfolgefunktion in C++ (STL), um eine Zeichenfolge in absteigender Reihenfolge zu sortieren. Wenn nicht, wie sortiere ich einen String in absteigender Reihenfolge in O (n) Zeit.Sortierung der Zeichenfolge in absteigender Reihenfolge.
Antwort
Es gibt eine Funktion in C++, um eine Zeichenfolge zu sortieren, und Sie können sie in absteigender Reihenfolge sortieren, indem Sie sie mit std::greater
anstelle von std::less
vergleichen.
Es wird jedoch nicht in O (n) Zeit sortieren (es wird O (n Log n) sein). Sie müssen dafür eine Bucket-Sortierung verwenden.
Der einfachste Weg wäre std :: sort it, dann std :: reverse it. Sortierung ist vom Algorithmus. Reverse ist vom Dienstprogramm.
#include <iostream>
#include <string>
#include <algorithm>
#include <utility>
int main(){
std::string str = "Hello Beep 5412";
std::cout << "normal string:" << std::endl;
std::cout << str << std::endl;
std::sort(str.begin(), str.end()); //sort it
std::reverse(str.begin(), str.end()); //reverse it
std::cout << "\nsorted, descending:" << std::endl;
std::cout << str << std::endl;
system("pause");
return 0;
}
Ausgang:
normal string:
Hello Beep 5412
sorted, descending:
polleeeHB5421
Viel einfacher zu verwenden 'std :: sort' mit' std :: greater' als umgekehrt: 'sort (begin (str), end (str), std :: groesser
Ja, das stimmt. Auch eine ordentliche Methode –
Wenn Sie die lineare Zeit benötigen, können Sie keine der Allzweck-Sortieralgorithmen verwenden (sie sind alle O(n log n)
durchschnittlichen Fall). Also: Nein, in der Standardbibliothek gibt es keine einzige geeignete Funktion.
So etwas wie eine Pigeonhole sort oder andere Bucket-Sortierung würde funktionieren: Verfolgen Sie einfach die Häufigkeit von jedem der 256 möglichen Zeichen, und schreiben Sie die Zeichenfolge danach neu.
Beachten Sie, dass Sie immer noch eine Vorstellung von der lexikalischen Reihenfolge haben müssen, die Sie für Ihre char-Werte haben möchten, aber dann schreiben Sie Ihre Zeichenfolge einfach neu, indem Sie in der richtigen (absteigenden) Reihenfolge über Ihre Buckets laufen.
- 1. Sortierung Datentabelle in absteigender Reihenfolge
- 2. MYSQL Reihenfolge von aufsteigender und absteigender Sortierung
- 3. Sortieren eines Stapels in absteigender Reihenfolge
- 4. Posteingangszuordnung in absteigender Reihenfolge datumsweis
- 5. Daten in absteigender Reihenfolge sortieren
- 6. Array-Index in absteigender Reihenfolge
- 7. Enumerable Bereich in absteigender Reihenfolge
- 8. F # Seq.sortBy in absteigender Reihenfolge
- 9. Im Wechsel zwischen der Sortierung in aufsteigender und absteigender Reihenfolge auf eine Schaltfläche klicken
- 10. C# array.sort() für mehrere Arrays in absteigender Reihenfolge
- 11. Einfügesortierung in absteigender Reihenfolge in C++
- 12. id in absteigender S.N in aufsteigender Reihenfolge
- 13. Angular 2: ngFor in absteigender Reihenfolge
- 14. Anzeige von Datum in AngularJS Datentabellen in absteigender Reihenfolge
- 15. Ist es möglich, in absteigender Reihenfolge
- 16. Array (NSArray) in absteigender Reihenfolge sortieren
- 17. arrange_() mehrere Spalten in absteigender Reihenfolge
- 18. Versuchen, Arbeitsblätter in absteigender Reihenfolge basierend auf Zellenwerten zu sortieren
- 19. TreeSet Elemente bestellen in absteigender Reihenfolge
- 20. Zeige Werte in absteigender Reihenfolge nach Datum
- 21. C#: Wörterbuch in absteigender Reihenfolge sortieren
- 22. Python sortieren Collections.DefaultDict in absteigender Reihenfolge
- 23. Java Dreieck Anzahl in absteigender Reihenfolge
- 24. Python-Liste in absteigender Reihenfolge sortieren
- 25. Karte in absteigender Reihenfolge sortieren java8
- 26. MapReduce nach Wert sortieren in absteigender Reihenfolge
- 27. Polymersortierung von JSON-Daten in absteigender Reihenfolge
- 28. Anzeige Tabelle Datensätze Reihenfolge nach Zeit in absteigender Reihenfolge
- 29. Xaxis Daten in absteigender Reihenfolge in Highcharts gegeben, aber immer noch Xaxis erscheint in aufsteigender Reihenfolge
- 30. absteigender Reihenfolge der varaibles (Spalten), basierend auf in R Ranking
die Funktion heißt 'sort' – user463035818
@Yathartha Kennen Sie einen Algorithmus, der mit O (n) sortiert? –
http://stackoverflow.com/questions/9107516/sorting-characters-of-a-cstring Duplikat –