黑马程序员技术交流社区

标题: 求大神指点 [打印本页]

作者: 你好我是潘机智    时间: 2015-3-23 09:24
标题: 求大神指点
        public static void maoPaoPaiXu(int[] arr)
        {
                for(int x=0;x<arr.length-1;x++)
                {
                        for(int y=0;y<arr.length-x;y++)
                        {
                                if(arr[y]<arr[y+1])
                                {
                                        int i=arr[y];
                                        arr[y]=arr[y+1];
                                        arr[y+1]=i;
                                }
                        }
               
                }

        }

在同一类里定义的函数 选择排序可以用 冒泡排序用不了
应该不是其他的原因 就是代码的问题 求各位大神指点 这段代码哪儿错了
作者: 殷俊    时间: 2015-3-23 09:34
内层for循环y是y<arr.length-x-1;
作者: 艺多不压身丶    时间: 2015-3-23 09:34
本帖最后由 艺多不压身丶 于 2015-3-23 09:36 编辑
  1. public static void maoPaoPaiXu(int[] arr)
  2.         {
  3.                 for(int x=0;x<arr.length;x++)
  4.                 {
  5.                         for(int y=0;y<arr.length-x-1;y++)
  6.                         {
  7.                                 if(arr[y]<arr[y+1])
  8.                                 {
  9.                                         int i=arr[x];
  10.                                         arr[x]=arr[y];
  11.                                         arr[y]=i;
  12.                                 }
  13.                         }
  14.                
  15.                 }

  16.         }
复制代码

作者: z1342802487    时间: 2015-3-23 09:53
  1. public static void maoPaoPaiXu(int[] arr)
  2.         {
  3.                 for(int x=0;x<arr.length-1;x++)
  4.                 {
  5.                         for(int y=0;y<arr.length-1-x;y++)//此处arr.length-x最大等于数组长度减一,但下面还有arr[y+1]会抛出ArrayIndexOutOfBoundsException:
  6.                         {
  7.                                 if(arr[y]<arr[y+1])
  8.                                 {
  9.                                         int i=arr[y];
  10.                                         arr[y]=arr[y+1];
  11.                                         arr[y+1]=i;
  12.                                 }
  13.                         }
  14.                
  15.                 }

  16.         }
复制代码



作者: 你好我是潘机智    时间: 2015-3-23 10:26
殷俊 发表于 2015-3-23 09:34
内层for循环y是y

多谢多谢




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