黑马程序员技术交流社区

标题: 求帮助 [打印本页]

作者: 小feng    时间: 2015-4-2 20:31
标题: 求帮助
// 选择排序
        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);
        }
}

作者: cuidianlong    时间: 2015-4-2 20:31
   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是去掉了结尾

作者: joexiny    时间: 2015-4-2 21:06
本帖最后由 joexiny 于 2015-4-2 21:12 编辑

写的都对吧 只不过你后面注释的是根据length进行长度判断,而前面则是 首先知道了X的范围,通过X判断条件对y进行判断。
作者: 一袭蓝10    时间: 2015-4-2 21:54
你的排序结果是降序,老师的排序结果是升序
作者: 快乐ABC    时间: 2015-4-3 09:03
你的是降序的排列,又看到了一种思想
作者: 遗失陌上    时间: 2015-4-3 21:52
老师的是通过增加y的初始化值来减少内循环次数,老师的内循环次数是逐渐减少的。你的是通过增加x的来不断提升内循环次数,你的内循环次数是逐渐增加的
作者: 淡然无味    时间: 2015-4-4 16:13
数组的下标是从0开始的,最后一个元素的下标是arr.length-1;你自己写的代码里面是从1开始的,
作者: wk843620202    时间: 2015-4-4 23:44
老师的是升序
作者: lingda21    时间: 2015-4-5 11:03
额   模糊了
作者: Angelsmile    时间: 2015-4-5 19:39
3楼正解




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