我有排列方法
public void permute(String str) {
permute(str.toCharArray(), 0, str.length() - 1);
}
private void permute(char[] str, int low, int high) {
if (low == high) {
writeIntoSet(new String(str, 0, length));
} else {
for (int i = low; i <= high; i++) {
char[] x = charArrayWithSwappedChars(str, low, i);
permute(x, low + 1, high);
}
}
}
private char[] charArrayWithSwappedChars(char[] str, int a, int b) {
char[] array = str.clone();
char c = array[a];
array[a] = array[b];
array[b] = c;
return array;
}
但是当我将长度为 10 个字母的字符串放入此方法时,它变成了 10!组合,这需要很多时间。有没有可能让它更快?
编辑
我需要对 10 个字母进行排列,但在那之后,我会在字典中搜索这些“单词”。例如,我有 - CxRjAkiSvH,我需要词 CAR、CARS、CRASH 等。有任何性能选项吗?