A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 来男. 中级黑马   /  2014-4-27 15:37  /  1232 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 来男. 于 2014-4-27 17:08 编辑

class Demo{
public static void bubleSort(){
for(int x=0;x<arr.length-1;x++){
  for(int y=0;y<arr.length-1-x;y++){  //?
   if(arr[y]<arr[y+1]){
    int temp=arr[y];
    arr[y]=arr[y+1];
    arr[y+1]=temp;
   }
  }
}
}


public static void main(String[] args){
int[] arr={5,1,6,4,2,8,9};

//排序前
System.out.println(arr);

//排序中
bubleSort(arr);

//排序后
System.out.println(arr);
}
}


“?”处我知道-1是防止角标越界,-x是减少每次的比较元素,
但老师强调格式应为:-1-x(最好不是-x-1,但熟了可以),这其中的缘由能否讲一下?
我听着这儿的是否有点懵。

5 个回复

倒序浏览
我认为可能就是为了看起来清楚一些,毕竟你的代码也是要给别人看的
回复 使用道具 举报
其实length-1-x和length-x-1是一样的,但是为了方便记忆我们都是length-1-x,一般遍历一个数组我们都是:
for(int x=0;x<length-1;x++)
到冒泡法排序的for嵌套,外层是length-1里层是length-1-x这样不是更好的记忆吗?其实还是看个人爱好拉,记住就行
回复 使用道具 举报
展展 发表于 2014-4-27 21:11
其实length-1-x和length-x-1是一样的,但是为了方便记忆我们都是length-1-x,一般遍历一个数组我们都是:
f ...

谢谢!我再想想吧,不过我是记住它了。
回复 使用道具 举报
一样的,可能这样写顺眼点吧
回复 使用道具 举报
都差不多 理解就好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马