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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小feng 中级黑马   /  2015-4-2 20:31  /  3455 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
// 选择排序
        class day
{
        public static void selectSort(int[] arr)
  {
  //帮我看看这里,源代码是我自己写的范围。注释的是看视频中老师写的范围。。这俩有什么区别么。。自己实在看不出
    看的好纠结啊。。我自己写的也是对的。。可是不知道跟老师写的差别在哪里!
                for(int x=1;x<arr.length;x++)     //(int x=0;x<arr.length-1;x++);
        {
                 for(int y=0;y<x;y++)                  //(int y=x+1;y<arr.length;y++);
                {
                        if(arr[y]<arr[x])
                           {
                               int z=arr[x];
                            arr[x]=arr[y];
                            arr[y]=z;
                        }
                }
        }
                        return;
  }
                public static void print(int[] arr)
        {
              for(int x=0;x<arr.length;x++)
           {
                        if(x<arr.length-1)
                  
                          System.out.print(arr[x]+",");


                        else


                        System.out.println(arr[x]);
                  
           }
                       
        }


                public static void main(String[]args)
        {
                int[] arr={12,19,78,65,15,63,34,78};
               
                print(arr);
                selectSort(arr);
                print(arr);
        }
}

最佳答案

查看完整内容

int[] arr={12,19,78,65,15,63,34,78}; //(int x=0;x

9 个回复

正序浏览
3楼正解
回复 使用道具 举报
额   模糊了
回复 使用道具 举报
老师的是升序
回复 使用道具 举报
数组的下标是从0开始的,最后一个元素的下标是arr.length-1;你自己写的代码里面是从1开始的,
回复 使用道具 举报
遗失陌上 来自手机 中级黑马 2015-4-3 21:52:35
报纸
老师的是通过增加y的初始化值来减少内循环次数,老师的内循环次数是逐渐减少的。你的是通过增加x的来不断提升内循环次数,你的内循环次数是逐渐增加的
回复 使用道具 举报
你的是降序的排列,又看到了一种思想
回复 使用道具 举报
你的排序结果是降序,老师的排序结果是升序
回复 使用道具 举报
本帖最后由 joexiny 于 2015-4-2 21:12 编辑

写的都对吧 只不过你后面注释的是根据length进行长度判断,而前面则是 首先知道了X的范围,通过X判断条件对y进行判断。
回复 使用道具 举报
   int[] arr={12,19,78,65,15,63,34,78};

//(int x=0;x<arr.length-1;x++);       按索引能取出的数是12,19,78,65,15,63,34,arr.length-1去掉了结尾
//(int y=x+1;y<arr.length;y++);      按索引能取出的数是19,78,65,15,63,34,78 ,x+1是去掉了开头
   
(int x=1;x<arr.length;x++)             按索引能取出的数是19,78,65,15,63,34,78,x=1 是去掉了开头
(int y=0;y<x;y++)                          按索引能取出的数是129,,19,78,65,15,63,34,y<x是去掉了结尾
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马