繁体   English   中英

java字符串排列

[英]java string permutations

我正在编写一个android应用,其中您有一个递归函数,该递归函数接受一个字符串并返回该字符串及其所有子字符串的所有排列。 这种方法非常耗时,特别是对于较长的字符串。 我去了这个网站,问是否有更有效的置换字符串的方法,所以有人建议使用Trie树。 可以肯定的是,trie的速度要快得多,但是我还注意到,使用更长的字符串,可以提高Trie的性能。 例如,使用7个字符长的字符串,Trie的速度大约是2.5倍。 Trie的10个字符的字符串大约快5倍,Trie的12个字符的字符串大约快10倍。 有谁知道为什么较长的琴弦会使Trie的演奏变得更好?

并不是说更长的字符串会提高trie的性能-它当然会变慢。 关键是您的幼稚解决方案比trie解决方案更糟糕,因此它以更快的速度变慢。

如果将特里解决方案与更有效的算法(如果存在)进行比较,则会看到相反的效果。

相反,您可以测量每种算法的挂墙时间性能,以查看每种算法变慢的速率。 或者,您可以分析算法本身,并尝试以big-O表示法表示其性能,这将使您可以更轻松地比较它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM