大家好!
我寻求帮助以了解如何正确评估,最重要的是,降低算法的复杂性。
问题是在访问其中一个遗留项目的数据库时,React 界面动画会变慢。在分析过程中,我发现将接收到的数据渲染到表中时有很大的延迟。
在注释突出显示的部分中,首先制作了.map,在另一个.map 内,在另一个.find 内,甚至还有一些indexOf。算法的复杂度,如果我理解正确的话,绝对不小于 O (n ^ 2) (而且很可能更多)。
网络充满了关于确定算法复杂性的信息,但我没有找到关于降低这种复杂性的明确信息。这个算法如何优化?降低复杂性的一般原则是什么?
提前感谢您的帮助!
<Table className="YearShedule" striped bordered size="sm">
<tbody>
// НАЧАЛО АЛГОРИТМА
{monthOrder.map((mName) => (
<tr className="YS_row" key={monthOrder.indexOf(mName)}>
<td>{monthRusName[mName]}</td>
{daysOfMonth.map((d) => {
let day_params = this.state.plc.shedule.base.days.find(
(el) => el.date == monthOrder.indexOf(mName) + 1 + ':' + d
)
let ind = this.state.plc.shedule.base.days.indexOf(day_params)
//КОНЕЦ АЛГОРИТМА
return day_params ? (
<DayShedule
key={d}
day_params={day_params}
title_mn={monthRusName[mName]}
title_d={d}
changeShedule={(val) => (this.state.plc.shedule.base.days[ind] = val)}
/>
) : (
<td key={d}>
<b>{d}</b>
<br />
<br />
</td>
)
})}
</tr>
))}
</tbody>
</Table>