2010-12-13 67 views
7

可能重複:
Plain English explanation of Big O爲什麼排序字符串O(n log n)?

在回答一個編程的難題故稱排序字符串需要爲O(n log n)的時間。 這是如何派生的?

有沒有人有一個很好的大O資源的參考鏈接。

由於

+0

你是什麼意思'排序字符串'?你的意思是排序字符串列表嗎? – jjnguy 2010-12-13 22:06:27

+0

或者可能排序字符串中的字符.. – 2010-12-13 22:07:25

+1

它在字符串中排序字符。我知道什麼是大O,我不知道爲什麼排序字符串中的字符是n log n。 – 2010-12-13 22:32:20

回答

10

爲什麼要對字符串O(n log n)進行排序?

排序字符串中的字符不一定是O(n log n)。

  • 爲O(n log n)的爲comparison sort最佳值。這也是許多語言默認排序實現的複雜性。然而,當然可以做得比這更糟糕。排序字符串中字符的複雜程度取決於您選擇解決此任務的特定算法。
  • 在某些情況下,通過使用不是比較排序的排序算法,也可以比O(n log n)做的更好。例如,如果你知道你有一個最多有127個不同字符的ASCII字符串,你可以使用一個counting sort,它是O(n)。對於所有字符位於Basic Multilingual Plane中的Unicode字符串,計數排序也是可行的。
相關問題