外层遍历出的元素不再参与里层遍历,效率能提高一半左右,根据这句话,优化我发给你的代码
时间: 2024-03-23 09:42:35 浏览: 58
C代码优化方案,提高程序效率
4星 · 用户满意度95%
好的,你可以考虑使用一个 `start` 变量来记录当前外层循环的起始位置,这样可以避免已经处理过的元素再次参与里层循环。优化后的代码如下:
```
function connect() {
let start = 0
for (let i = 0; i < particles.length; i++) {
const p1 = particles[i]
start = i + 1 // 记录当前外层循环的起始位置
for (let j = start; j < particles.length; j++) {
const p2 = particles[j]
const distance = Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2)
if (distance < lineDistance) {
const alpha = 1 - Math.sqrt(distance) / lineDistance
cxt.globalAlpha = alpha
cxt.strokeStyle = `RGB(${colorRgb},${alpha})`
cxt.beginPath()
cxt.lineWidth = 0.8
cxt.moveTo(p1.x, p1.y)
cxt.lineTo(p2.x, p2.y)
cxt.stroke()
}
}
}
cxt.globalAlpha = 1
}
```
这样可以避免重复计算已经处理过的元素,提高了代码的效率。
阅读全文