我正在做一个项目,需要优化运行时间。是 String.contains()
运行时间与 TreeSet.contains()
相同, 是 O(logN)?
我问的原因是我正在构建 TreeMap<String, TreeSet<Song>>
,其中 Songs 包含一串歌词。根据效率,我正在考虑在歌曲中包含一组歌词,并在其上而不是字符串上运行搜索。
最佳答案
最著名的算法之一是 Boyer-Moore字符串搜索算法是 O(n),虽然它可以在最好的情况下提供次线性性能。
在 Java 中使用哪种算法取决于您下载的实现。例如,OpenJDK 似乎使用了一种在 O(nm) 中运行的简单算法,并且在最佳情况下具有线性性能。见第 1770-1806 行 here .
关于java - Java 中 String.contains() 的大 O 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089558/