双层循环的经典使用场景:
- 冒泡排序
- 希尔排序
1. 多层循环的含义
多层循环,就像剥洋葱一样,一层一层地拨开,核心的处理逻辑隐藏在内层循环,更重要的意义在于,在外层循环所代表的不同变量下,内层循环执行的逻辑是是一样的。比如对于冒泡排序,外层循环限制的仅仅是内层循环的起始位置;而对于希尔排序而言,外层循环控制的是内层循环所依赖的 Increment 的大小:
int Increment;
for (Increment = N/2; Increment >= 0; Increment /= 2) {
...
}
循环的意义也相当于递归,正因如此,才可将递归转换为迭代版本。只不过递归时传递的参数的变化,反应在循环体的参数上。