gpt4 book ai didi

java - 嵌套 for 循环的时间和性能复杂度

转载 作者:行者123 更新时间:2023-12-01 22:00:37 24 4
gpt4 key购买 nike

我有一个如下所示的对象:

1 [country1, state1, district1, schoolName1, studentName1]
2 [country1, state1, district1, schoolName1, studentName2]
3 [country1, state1, district1, schoolName2, studentName1]
4 [country1, state1, district1, schoolName2, studentName2]
5 [country1, state1, district2, schoolName1, studentName1]
6 [country1, state1, district2, schoolName1, studentName2]
.
.
.
1000 [country3, state4, district2, schoolName2, studentName1]
1001 [country3, state4, district2, schoolName2, studentName2]
.
.

现在我想将如下所示的内容分开:

[country1]
[state1]
[district1]
[schoolname1]
[studentname1,studentName2,...]
[schoolname2]
[studentname1,studentName2,...]
.
.
[district2]
.
.
[country2]
[state1]
[district1]
[schoolname1]
[studentname1,studentName2,...]
[schoolname2]
[studentname1,studentName2,...]
.
.
[district2]
[schoolName1]
.
.

据我所知,我可以使用嵌套的 for 循环。但它会消耗更多的时间和性能。我知道这是个坏主意。如果您遇到过这种情况,请分享您的经验来解决此问题。

最佳答案

任务的最低复杂度(可能获得的最佳性能)取决于输入的规模,即行数 * 每行中的项目数。你不能做得更好,因为你至少必须读取所有输入一次,因为你需要所有数据。

同时,您的任务应该可以在这种复杂性下完成。

因此,如果您使用两个嵌套循环(一个用于行,另一个用于列),那么您做得很好 - 这将执行大约适量的操作。如果您使用的嵌套循环与列一样多,那么您的工作就很糟糕(行 ^ 列 而不是行 * 列),应该尝试不同的方法 - 对于这样的任务,您只需读取每一行一次,对其进行处理并将结果添加到层次结构中的正确位置。

关于java - 嵌套 for 循环的时间和性能复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33551145/

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