黑马程序员技术交流社区

标题: 冒泡排序中数据交换为什么要带 数组,不带为什么不行 [打印本页]

作者: liuch111    时间: 2015-7-11 11:26
标题: 冒泡排序中数据交换为什么要带 数组,不带为什么不行
    //方法一
    public static void swap(int[] arr,int x,int y)  
    {  
      int temp;
      temp=arr[x];
          arr[x]=arr[y];
          arr[y]=temp;

    }  
  //方法2
    public static void swap1(int x,int y)  
    {  
     // int temp;
     int temp=x;
             x=y;
             y=temp;

                 System.out.print("x="+x+";"+"y="+y);

    }  

方法2不行, 数组数据顺序没变,为什么
作者: 拾起落叶    时间: 2015-7-11 14:18
方法2里面,如果传递两个参数swap1(5,6),运行到x=y时,6能赋值给5吗?
作者: 放养的饼干    时间: 2015-7-11 16:53
方法一是将数组中储存的地址值调换了。你方法二是将数组中的数据先赋值给X和Y,他们只是自立门户的两个变量,这时X和Y已经跟数组没关系了,你怎么换都不影响数组的值
作者: zhwfa1991    时间: 2015-7-11 17:47
第一个方法换的是数组元素的地址,第二个方法只是把数值传过来后改变了这两个数的前后顺序而已,和数组已经没有什么关系了




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