Wie kann ich einen Algorithmus zum Sortieren von n Zeichenfolgen in O (dn) entwerfen, wobei d die Anzahl der Zeichen in einer längsten Zeichenfolge ist?Entwerfen eines Algorithmus zum Sortieren von n Zeichenfolgen in O (dn)
0
A
Antwort
1
Sie können eine trie verwenden.
Erstellen Sie einen leeren Trie.
Schleife über alle Zeichenfolgen, und legen Sie sie darin.
Iterieren Sie alle Werte des Trie in der Reihenfolge und geben Sie sie aus (siehe Trie complexity and searching, wie unten von Jean-Baptiste Yunès vorgeschlagen).
Die Komplexität von 1 ist konstant. Die Komplexität von 2 und 3 ist O (dn).
Verwandte Themen
- 1. Optimierungs-Algorithmus von O (n^3) bis O (n^2)
- 2. O (n log n) in Javascript-Algorithmus
- 3. Verbesserung O (n^2) -Algorithmus
- 4. Algorithmus Komplexität - Erklärung von O (log n)?
- 5. Schlechte Laufzeit von O (n^2) Algorithmus
- 6. Beispiel eines großen O von 2^n
- 7. maximaler Fluss Algorithmus in weniger als O (n^3)
- 8. Sortieren eines Arrays von Zeichenfolgen in C#
- 9. Zeitkomplexität eines Algorithmus - n oder n * n?
- 10. Sortieren Array mit Bereich von Werten in O (n)
- 11. Ist die Quadratwurzel von n näher an O (log n) oder O (n)?
- 12. Big Oh - O (n) gegen O (n^2)
- 13. kommend mit einem Algorithmus in O bis (n)
- 14. Entwerfen eines Cache-optimierten N-ary-Baumes
- 15. Allgemeiner Algorithmus zum Lösen eines Labyrinths mit n Kugeln
- 16. Warum ist dieser o (n) Drei-Wege-Disjunktion Algorithmus langsamer als dann o (n^3) Version?
- 17. O (n) Sortieralgorithmus
- 18. 2D-Peak-Finding-Algorithmus in O (n) Worst-Case-Zeit?
- 19. Verwenden von Vorlagen zum Sortieren von Zeichenfolgen und Zeichen
- 20. Hilfe zum Schreiben eines Algorithmus
- 21. Algorithmus-Analyse - Große O-Notation
- 22. Sortieren von 10 Millionen Objekten in O (n) Zeit und O (1) extra Speicher
- 23. Sortieren von Zeichenfolgen mit qsort
- 24. Zwischen O (nlog * n) und O (n)?
- 25. Ändern Komplexität von O (n) bis O (log n)
- 26. Arbeitet in O (n) zu sortieren, wenn das Array
- 27. Algorithmus zum Auffinden von Symmetrien eines Baumes
- 28. Zufälliges Sortieren eines Arrays
- 29. O (logn) und Algorithmus Beziehung
- 30. Ist die zeitliche Komplexität dieses Algorithmus O (N^2)?
3. Punkt ist nicht klar. Wie stellen Sie sicher, dass die Strings sortiert sind? –
@SauravSahu Es ist eine ziemlich einfache rekursive Funktion (siehe [hier] (http://stackoverflow.com/questions/13685687/how-to-print-all-words-in-a- trie) eine Implementierung). Beginnen Sie am Knoten, und besuchen Sie rekursiv alle untergeordneten Elemente, während Sie das aktuelle Präfix verfolgen. Wenn Sie ein Blatt treffen, geben Sie die gesamte Zeichenfolge entlang des Pfads aus. –
Ergänzung: http://stackoverflow.com/questions/13032116/trie-complexity-and-searching –