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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 易东俊 中级黑马   /  2014-6-11 16:33  /  1725 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
请帮我把这种排序修改一下,使其能正常排序。
*/

public static void sort(int[] arr)
{
          int max = 0;
          for(int x = 0 ; x < arr.length-1 ; x++)
          {
                    for(int y = x+1 ; y < arr.length; y++)
                    {
                               if(arr[y] > arr[x])
                               {
                                           arr[max] = arr[y] ;
                                           arr[y] = arr[x] ;
                                           arr[x] = arr[max] ;
                                }
                    }
          }
          Tool.kk(arr);
}
/*打印数组中的每个元素的*/
class Tool
{
              public static void kk(int[] arr)
              {
                            for(int o = 0 ;o <arr.length; o++)
                            {
                                          System.out.print(arr[o]+",");
                            }
              }

5 个回复

倒序浏览
这个max定义有误,当arr[y]>arr[x]时,是让他们调换位置,而不是用arr[max],arr[max]在你的定义中就是arr[0],
回复 使用道具 举报
这个max定义有误,当arr[y]>arr[x]时,是让他们调换位置,而不是用arr[max],arr[max]在你的定义中就是arr[0],


建议arr[max]全部改为   max   

另外max这个名字起的不太好,容易让人误解,一般用temp
定义一个便令temp
temp=arr[y];
arr[y]=arr[x];
arr[x]=temp;
用来作为中间变量调换arr[y]和arr[x]的值

点评

谢谢,一下点醒梦中人。  发表于 2014-6-11 18:27
回复 使用道具 举报 1 0
Gaara33 发表于 2014-6-11 17:30
这个max定义有误,当arr[y]>arr[x]时,是让他们调换位置,而不是用arr[max],arr[max]在你的定义中就是arr[0 ...

非常有用,语言简练。
回复 使用道具 举报
Gaara33 发表于 2014-6-11 17:30
这个max定义有误,当arr[y]>arr[x]时,是让他们调换位置,而不是用arr[max],arr[max]在你的定义中就是arr[0 ...

不客气,大家都是一起来交流的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马