冒泡排序双重for循环的意思
public static void main(String[] args) {
int[] arr = {11,9,13,26,24,35,46};
int temp ;
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]<arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int n:arr) {
System.out.print(" "+n);
}
}
请各位前辈帮我解释一下
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-i-1;j++){
这里为何外层循环条件是i<arr.length-1 ,而内层循环条件是j<arr.length-i-1 , i和j能理解,只是不明白为何是arr.length-1,和arr.length-i-1.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一切都只是为了让冒出来的不在参与循环。先来说说意思
这么写可能容易理解点。
arr.length-1 外面这层比较次数,最后只剩下数组第一位不需要比较
arr.length-i-1 里面这层是j和j+1相邻对比,所以j取数组最后一位的前一位