gpt4 book ai didi

java - 慢速递归函数。我怎样才能加快速度?

转载 作者:搜寻专家 更新时间:2023-11-01 08:55:53 25 4
gpt4 key购买 nike

下面是一个什么都不做的递归函数。真正的函数做了一些检查,实际上可以删除一些递归调用,但这只是一个简化问题的例子。

public void speedtest2(char[] s) {
int a, c;
int l, lmax;
int arrlength = Array.getLength(s);
for (a = 0; a < arrlength; a++) {
if ((a == 0) || (s[a]) != s[a - 1]) {
if (s[a] == '*') {
lmax = 26;
} else {
lmax = 1;
};
for (l = 1; l <= lmax; l++) {
tot++;
char[] tmp = new char[arrlength - 1];
int p = 0;
for (c = 0; c < arrlength; c++) {
if (c != a) {
tmp[p++] = s[c];
};
};
speedtest2(tmp);
}

}
}
}

在我的 HTC Flyer android 平板电脑上,使用包含“srrieca*”的数组调用 speedtest 最多需要 5 秒。在这个极端的例子中,该函数被调用了 1 274 928 次,但仍然如此。

我很确定可以做些什么来提高这个例子的速度。

最佳答案

您可以通过合并 tmp 数组来减少垃圾收集器的开销。当然,在您确认这是您案例中的瓶颈之后。

关于java - 慢速递归函数。我怎样才能加快速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18969617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com