2013-07-26 8 views

Antwort

9

Nach Wikipedia und this source, schlimmsten Fall Komplexität zum Einsetzen und Suche nach einem Trie ist O(M) wo M ist die Länge eines Schlüssels. Ich finde keine Quellen, die die beste oder durchschnittliche Fallkomplexität von Insertion und Suche beschreiben. Wir können jedoch mit Sicherheit sagen, dass die beste und durchschnittliche Fallkomplexität O(M) ist, wobei M die Länge eines Schlüssels ist, da Big-O nur eine Obergrenze für die Komplexität beschreibt.

1

k: Die Länge der Zeichenfolge, die Sie suchen oder einfügen.

For Search 

Worst: O(26*k) = O(k) 
Average: O(k)   # In this case, k is an average length of the string 
Best: O(1)    # Your string is just 'a'. 

Die Komplexität von Trie ändert sich nicht mit der Anzahl der gesuchten Zeichenfolgen, sondern nur mit der Länge der Suchzeichenfolge. Deshalb wird Trie verwendet, wenn die Anzahl der zu suchenden Strings groß ist, wie das Durchsuchen des gesamten Vokabulars in einem englischen Wörterbuch.

For Insertion 

Worst: O(26*k) = O(k) 
Average: O(k) 
Best: O(1) 

Also ja, Sie haben Recht. Du hättest wahrscheinlich O (MN) gesehen, und das hätte dich vielleicht verwirrt, aber es redet einfach davon, wenn du N-mal mehr als O (k) -Operationen machen musst.