黑马程序员技术交流社区

标题: 帮忙看哈这个冒泡程序咋回事啊 [打印本页]

作者: 江峰    时间: 2015-7-27 23:19
标题: 帮忙看哈这个冒泡程序咋回事啊
  1. /*          需求:对一堆数据按冒泡排序法进行排序
  2.           方法:将相邻两个数进行比较,如果前面大于后面则调换位置
  3. */
  4. class maopao
  5. {
  6.        
  7.         public static void maopao(int []data)
  8.         {
  9.                 for(int x=0;x<data.length-1; x++)
  10.                 {
  11.                         for(int y=0;y<=data.length-x-1;y++)
  12.                         {
  13.                                 if(data[y]>data[y+1])
  14.                                 {
  15.                                         int temp=data[y];
  16.                                         data[y]=data[y+1];
  17.                                         data[y+1]=temp;
  18.                                 }
  19.                         }
  20.                 }
  21.         }       
  22.         public static void main(String args[])
  23.         {
  24.                 int []data={2,4,1,5,3,1};
  25.                 shuchu(data);
  26.                 maopao(data);
  27.                 shuchu(data);       
  28.         }
  29.         public static void shuchu(int []data)
  30.         {
  31.                 for(int i=0;i<=data.length;i++)
  32.                 {
  33.                         System.out.print("["+data[i]+"]");
  34.                 }
  35.                 System.out.print("\n");       
  36.         }
  37. }
复制代码

作者: 随便随便    时间: 2015-7-27 23:22
互相学习
作者: 帅帅loyal    时间: 2015-7-27 23:22
类名称首字母首字母不应该大写的么?class MaoPao
作者: 丶渡过    时间: 2015-7-27 23:26
首先类的名字虽然可以不大写但最好默认为首字母大写。
然后你脚码越界了,第11行和21行都不要等号。

作者: 丶渡过    时间: 2015-7-27 23:27
不是 是31行
作者: 江峰    时间: 2015-7-27 23:27
丶渡过 发表于 2015-7-27 23:26
首先类的名字虽然可以不大写但最好默认为首字母大写。
然后你脚码越界了,第11行和21行都不要等号。
...

赞一个,谢谢
作者: 江峰    时间: 2015-7-27 23:29
帅帅loyal 发表于 2015-7-27 23:22
类名称首字母首字母不应该大写的么?class MaoPao

不是这个问题吧,你说的不是错误,只是规范
作者: 逆光奔跑    时间: 2015-7-27 23:29
for(int y=0;y<=data.length-x-1;y++)这条代码越界,应为y<data.length-x-1,不要等于号;for(int i=0;i<=data.length;i++),也是不要等于号为i<data.length
作者: 江峰    时间: 2015-7-27 23:31
逆光奔跑 发表于 2015-7-27 23:29
for(int y=0;y

恩,我刚试了果然是这个问题,谢谢了
作者: 丶渡过    时间: 2015-7-27 23:31
江峰 发表于 2015-7-27 23:27
赞一个,谢谢

自己多跑几遍,多看看错误提示一下就看出来了
作者: 章浩    时间: 2015-7-27 23:38
角标越界了   你看你的for循环里面   应该是<length-1   还有你的代码书写格式太不规范了
作者: wx_HWRW5aF7    时间: 2015-7-27 23:56
不错 赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2