簡體   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