我是计算机科学专业的学生.但我编码不多.For循环对我来说非常简单,如果它是嵌套for循环,我的头开始旋转.
告诉我如何掌握嵌套for循环.我应该从哪里开始练习?
一旦我的班级工作人员告诉我们任何使用较少for循环的应用程序是最有效的.那是真的吗?
建议我任何book
或paper on for loops
或links
!!
deceze:How about you give us an example nested loop and tell us what you don't understand about it?
我无法完全解释它.每当我开始想到一个需要2个循环(嵌套)的函数时,第二次迭代就会顺利进行.之后如果我在内循环中添加任何其他计算,在一秒之后它全部消失了.我无法继续.所以,然后我必须在PC中运行循环作为较小的循环,然后我将其构建为功能完备的循环.
好的,离开我. What you all do, i mean, how you start if you have to build a function which needs more than 2 nested for loops.
Suggest me any book or paper on for loops or links!!
为了巩固你对2 for循环的理解,你可以尝试在http://www.codingbat.com/java上练习- 此外,还有即时和(大部分)彻底的评分!String-3或Array-3问题可以使用2 for循环.
如果您有一个2D数组,并且需要访问所有索引,则可以使用2 for循环.因此,类似地,如果您有3D数组,则可以使用3个嵌套循环.请记住,循环内部在外部之前结束 - 因此,如果您有2个循环,则内部代码将循环内部循环指定的时间量,以及外部循环指定的次数.你可以绘制一个图表:
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
for(int k = 0; k < 2; k++) {
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
视觉表现:
i: 0-----------1
| |
j: 0-----1 0-----1
| | | |
k: 0---1 0---1 0---1 0---1
Run Code Online (Sandbox Code Playgroud)
如果我分配信件:
i: A-----------B
| |
j: C-----D E-----F
| | | |
k: G---H I---J K---L M---N
Run Code Online (Sandbox Code Playgroud)
X1是X的第一部分(嵌套for循环之前),X2是第二部分(嵌套for循环之后),执行顺序为:
A1,C1,G,H,C2,D1,I,J,D2,A2,B1,E1,K,L,E2,F1,M,N,F2,B2
因此,当您查看循环时,您不需要拍摄n维数组.
一旦我的班级工作人员告诉我们任何使用较少for循环的应用程序是最有效的.那是真的吗?
如果你的for循环涉及计算一个像公式一样的值,那么将东西插入公式会更快,也可能更有效.但通常最慢的Big O算法会最大程度地影响程序的效率 - 因此依赖于n
(作为其停止条件)的独立for循环如果它还嵌套了依赖于的循环,则不会减慢程序的速度.n
.
归档时间: |
|
查看次数: |
852 次 |
最近记录: |