2010-12-13 8 views
7

Mögliche Duplizieren:
Plain English explanation of Big OWarum wird ein String O (n log n) sortiert?

In der Antwort auf eine Programmierung Puzzle sagte, es einen String Sortier O braucht Zeit (n log n). Wie wird das abgeleitet?

Hat jemand eine gute Referenz Link für Big O Ressourcen.

Dank

+0

Wie meinst du 'eine Zeichenfolge sortieren'? Willst du eine Liste von Strings sortieren? – jjnguy

+0

Oder vielleicht sortieren Zeichen in einer Zeichenkette. –

+1

Seine sortierenden Zeichen in einer Zeichenkette. Ich weiß, was ein großes O ist, ich weiß insbesondere nicht, warum das Sortieren von Zeichen in einer Zeichenkette n log n ist. –

Antwort

10

Warum wird eine Zeichenkette O (n log n) sortiert?

Das Sortieren der Zeichen in einer Zeichenfolge ist nicht unbedingt O (n log n).

  • O (n log n) ist der optimale Wert für eine comparison sort. Es ist auch die Komplexität der Standard-Sortierimplementierung vieler Sprachen. Es ist jedoch möglich, schlimmeres zu tun. Die Komplexität der Sortierung der Zeichen in einer Zeichenfolge hängt vom jeweiligen Algorithmus ab, den Sie zur Lösung dieser Aufgabe auswählen.
  • In einigen Fällen ist es auch möglich, besser als O (n log n) zu arbeiten, indem ein Sortieralgorithmus verwendet wird, der keine Vergleichssortierung ist. Wenn Sie beispielsweise wissen, dass Sie eine ASCII-Zeichenfolge mit maximal 127 verschiedenen Zeichen haben, können Sie eine counting sort verwenden, die O (n) ist. Eine zählende Sortierung wäre auch für Unicode-Zeichenfolgen möglich, bei denen alle Zeichen in der Basic Multilingual Plane sind.
Verwandte Themen