0
我想知道跟隨的算法的複雜性是什麼 1. Java字符串標記器 2.基於STL的基於STL的標記器 3. strtok。Java tokenizer,C++ tokenizer和strtok
有沒有更快的算法,然後基本strtok基於自定義分隔符標記字符串。
我想知道跟隨的算法的複雜性是什麼 1. Java字符串標記器 2.基於STL的基於STL的標記器 3. strtok。Java tokenizer,C++ tokenizer和strtok
有沒有更快的算法,然後基本strtok基於自定義分隔符標記字符串。
關於Java,有三種主要的標記化技術(String.split(),StringTokenizer和StreamTokenizer)。如果引用java.util.StringTokenizer類(它通過從給定字符串D每次出現字符時突破輸入字符串S進行標記),則複雜度爲O(| S | * | D |)。也就是說,如果你只有一個分隔字符,這將是線性的。
請注意,其他標記者的能力更強大。例如,String.split()可以分解任何匹配給定正則表達式的模式。
有沒有比O更好的其他算法(| S | * | D |) – Avinash 2010-10-05 10:31:44
@Avinash:理論上是的。一個簡單的實現可以將分隔符存儲在散列表中,並且平均導致O(| S |)時間。我想這不是很有用,因爲這組分隔符通常非常小。 – 2010-10-05 10:38:16