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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class  ArrayDemo   
{  public static void main(String[]args)         {
   int[]arr={2.5.1.6.3};

    System.out.print("数组排序前:");


    printArray(arr);              //调用下面定义的输出语句
   selectSofr(arr);               //主函数下面定义的排序方法
  System.out.print("数组排序后:");
   printArray(arr);              //调用下面定义的输出语句
    }

public staic void selectSort(int[]arr)  //选择排序方法定义
   {
     for(x=0;x<arr.length-1;x++)     //      x<arr.length-1  是代表最大值?  还是只是长度减掉最小值的长度?
        {
              int  num=arr[x];                //定义个变量代表  数组里的一个元素哦
              int index=x;                //  定义角标                                     --------------------俩者一起来定义最小值和最小值的角标, 效率提高
      for(y=x+1;y<arr.length;y++)   //同理
           {
                 if(num>arr[y])               //条件式
                 num=arr[y];
                 index=y;
                   }
           }
         if(index !=x)           //条件式, 只要角标值不等于x的角标,及执行以下的操作,如果最小值就是x自己就没必要执行这个了!
                 swap(arr,x,index)        //这个大家请看下面这个定义哦
        }
}
   
       public static void  swap(int[]arr,int a ,int b)         //这玩意儿的定义提升了复用性,不用像第一次方法一样每一次搞个换位都打一堆。
      int temp = arr[a];
     arr[a]=arr[b]  ;
     arr[b]=temp;
   }
public static void pritnArray(int[]arr)   //之前帖子方法1有讲
      {
     System.out.print("[");
   for(int x=0;x<arr.length;x++)
             {
   if(x != arr.length-1);
    System.out.print(arr[x]+",");
elas
  System.out.print(arr[x]+"]");
               }
   }


不确定点求解惑:1.x<arr.length-1  是代表最大值?  还是只是长度减掉最小值的长度?
                            2.swap的意义?
  有错误及时指出哦, 谢谢。

4 个回复

倒序浏览
x<arr.length-1   ——arr.length-1 是最大角标;x<最大角标,因为后面定义了y=x+1,则y<arr.length,则符合要求。解释一下:如果数组长度为5,运用选择排序,那么角标最大为4,则x最大只能是3,因为最后是角标3的元素和角标4的元素比较。
swap的意义——定义的一个方法,用来简化程序,当需要对元素进行交换是,就可以直接调用这个方法,简便了许多。
回复 使用道具 举报
1、数组arr的最大下标是arr.length-1,因为数组下标是从0开始的   2、swap是static修饰的静态方法,调用不用new对象,可以直接类名.方法名()调用,本文中wap()函数是把数组arr下标a和b的值交换。
回复 使用道具 举报
yuyucoo 发表于 2015-10-10 19:50
1、数组arr的最大下标是arr.length-1,因为数组下标是从0开始的   2、swap是static修饰的静态方法,调用不用 ...

下标是什么意思? 还有是  本文中的wap是  swap吧?
回复 使用道具 举报
第一个回答的不错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马