2010-12-13 19 views
7

Powiel możliwe:
Plain English explanation of Big ODlaczego sortowanie jest ciągiem O (n log n)?

W odpowiedzi na programowania układanki powiedziane sortowania ciąg zajmuje O (n log n). Jak to jest wyprowadzone?

Czy ktoś ma dobry odnośnik do zasobów Big O.

Dzięki

+0

Jak masz na myśli "sortowanie sznurka"? Masz na myśli sortowanie listy strun? – jjnguy

+0

A może sortowanie znaków w ciągu .. –

+1

Służy do sortowania znaków w ciągu znaków. Wiem, jakie jest duże O, nie wiem w szczególności, dlaczego sortowanie znaków w łańcuchu to n log n. –

Odpowiedz

10

Dlaczego sortowanie ciągu O (n log n)?

Sortowanie znaków w łańcuchu nie musi oznaczać O (n log n).

  • O (n log n) jest optymalna wartość dla comparison sort. Jest to również złożoność implementacji domyślnego sortowania wielu języków. Jednak na pewno można zrobić coś gorszego. Złożoność sortowania znaków w łańcuchu zależy od konkretnego algorytmu wybranego do rozwiązania tego zadania.
  • W niektórych przypadkach możliwe jest również wykonanie funkcji lepszej niż O (n log n) za pomocą algorytmu sortowania, który nie jest sortowaniem porównawczym. Na przykład, jeśli wiesz, że masz ciąg ASCII z maksymalnie 127 różnymi znakami, możesz użyć wartości counting sort, która jest O (n). Sortowanie zliczania byłoby również możliwe do uzyskania w przypadku ciągów Unicode, w których wszystkie znaki znajdują się w Basic Multilingual Plane.