数据交换的方式.md

总结.png

方式一,最常见的交换方式

实现


public static void swap2(Object[] myArray,int a,int b){
  Object temp=myArray[a];
  myArray[a]=myArray[b];
  myArray[b]=temp;
}

第一种方式是最常用的方式,新建一个变量来进行交换

方式二,相对更加省内存的交换方式

优化起因

我们能不能不用第三个变量,就两个变量进行交换

实现

public static void swap1(int[] myArray, int a, int b) {
    if (a!=b) {
        myArray[a] = myArray[a] + myArray[b];
        myArray[b] = myArray[a] - myArray[b];
        myArray[a] = myArray[a] - myArray[b];
  }
}

第二种方式,采用了加减的方法

思路过程:a=a+b->b=a+b-b;a=a+b-b

优点

更加的节省内存

缺点

  • a+b的时候容易产生溢出
  • 很难运用到不是数字的其他类中

方式三,整数型数据最佳的交换方式

实现

public static void swap3(int[] myArray,int a,int b){
    if (a!=b) {
        myArray[a] = myArray[a] ^ myArray[b];
        myArray[b] = myArray[a] ^ myArray[b];
        myArray[a] = myArray[a] ^ myArray[b];
  }
}

原因

  • 计算机的处理二进制运算符相对比较快

优点

运行效率相对于方式2更佳

缺点

  • 只能用在整型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,307评论 30 472
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 我想说清楚,有一件事,我想让你明白。我们的相爱,源于,我们的相识,相知。之后是相恋。我从你的前任手上接过你的手。我...
    度你余生阅读 1,287评论 0 1
  • 我们后来听说,当天早晨杀掉了一只虎斑猫。 虎斑猫是木匠养的,木匠被关在西侧屋子的酒窖里。酒窖废弃了三五年,仅有的气...
    尺八_阅读 1,859评论 3 3
  • 白衫映着清澈的脸庞 紫裙在徐风中轻轻张扬 你低着头娇羞的模样 便是春日里最好的风光 岁月在吟声浅唱 柳絮像白雪飘荡...
    simple_1766阅读 2,682评论 1 4