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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 你好我是潘机智 中级黑马   /  2015-3-23 09:24  /  1256 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        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;
                                }
                        }
               
                }

        }

在同一类里定义的函数 选择排序可以用 冒泡排序用不了
应该不是其他的原因 就是代码的问题 求各位大神指点 这段代码哪儿错了

4 个回复

倒序浏览
内层for循环y是y<arr.length-x-1;
回复 使用道具 举报
本帖最后由 艺多不压身丶 于 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.         }
复制代码
回复 使用道具 举报
  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.         }
复制代码


回复 使用道具 举报

多谢多谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马