黑马程序员技术交流社区
标题:
冒泡排序第二个for里面为什么要减i减1?
[打印本页]
作者:
20140829
时间:
2014-10-18 18:32
标题:
冒泡排序第二个for里面为什么要减i减1?
class A5 {
public static void main(String[] args) {
int[] arr = { 1, 5, 2, 6, 3 };
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
if (arr[j]>arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
System.out.print(arr[i]);
}
}
}
复制代码
作者:
LL.t
时间:
2014-10-20 13:02
举例:
arr.length = 5
外循环 i=0
那么内循环里面的控制语句 j<arr.length - i 也就等同于(j < arr.length)
这样下一步if 语句里面的 arr[j+1]) 就下标超界了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2