还请各位来说说Swap不同实现方式谢谢

解决方案 »

  1.   

    int []aa = new int{1,2};
    aa = swap(new int{a,b});
    ---------------------
    int[] swap(int[]aa)
    {
     aa[0] = aa[0]+aa[1];
     aa[1] = aa[0]-aa[1];
     aa[0] = aa[0]-aa[1];
    }传数组就可以传引用了,aa数组中两个值已经交换。
    关于传值和传引用等一系列问题,楼主在另外一个贴子上应该已经明白了吧,这里就不说了。
      

  2.   

    swap(int *p,int *s)
    {
    int temp;
    temp=*p;
    *p=*s;
    *s=temp
    }
    是这种么?
      

  3.   


     不是  
     我是想看看各位java下的Swap各种实现方法
      

  4.   

    java对参数的处理方式决定了它不可能优雅的实现swap。
    一般就通过提供一个数组,对数组的元素进行交换。或者提供一个封装类型实现。
    比如
    void swap(int[] array,int i,int j){
       int temp = array[i];
       a[i]=a[j];
       a[j]=temp;
    }或者 
    class Int{
       int i;
    }void swap(Int arg1,Int arg2){
       temp = arg1.i;
       arg1.i = arg2.i;
       arg2.i = temp;
    }
      

  5.   

    不建议在 Java 中使用 swap 函数,虽然有多种方法可以实现 swap,但这样做增加了数据的复杂程度,有点得不偿失。
      

  6.   

    如果原始数据本身就是个数组,要交换其中某两个下标的数据,那倒是可以写个 swap 方法。但是如果原始数据原本就是两个 int 数据,就没必要再去写个 swap 方法了。