多层循环如何优化?

gerrylon007 2016-04-23 03:59:34
function test() {
var max = 0,
m, n, i, j, k, p, b, v, s;
for (m = 5; m >= 2; m--) {
for (n = 5; n >= 2; n--) {
for (i = _module_length - m; i--;) {
for (j = _module_length - n - 1; j >= 0 && (v = array[$qr.point(i, j)]); j--, b = false)
{

for (k = i + m - 1; k >= i; k--) {
for (p = j + n - 1; p >= j && (s = array[$qr.point(k, p)]); p--) {
if (s !== v) {
b = true;
break;
}
}
if (b) {
break;
}
}

if (!b) {
max += (m - 1) * (n - 1) * 3;
continue;

}
}

}

}
}
return max;
}
...全文
519 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-04-23
  • 打赏
  • 举报
回复
代码不全,优化无从谈起
swrd2014 2016-04-23
  • 打赏
  • 举报
回复
引用 1 楼 hch126163 的回复:
1、找更优的算法, 2、如果没有更好的算法, 可以每层循环封装一个函数,好处是,代码不会嵌套很多层,好维护
没有更好的算法,算法是引的,说说怎么封装函数?函数引用函数吗?关键是想办法性能提升,这6层循环,在设备上每跑一次要400~500ms,外面还有一个8层大循环,运行完要2s多,能优化的,都尽量优化了,效果提升不大,还有什么办法?
hch126163 2016-04-23
  • 打赏
  • 举报
回复
1、找更优的算法, 2、如果没有更好的算法, 可以每层循环封装一个函数,好处是,代码不会嵌套很多层,好维护

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧