數據交換的方式.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,209評論 30 471
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,796評論 1 92
  • 我想說清楚,有一件事,我想讓你明白。我們的相愛,源于,我們的相識,相知。之后是相戀。我從你的前任手上接過你的手。我...
    度你余生閱讀 194評論 0 1
  • 我們后來聽說,當天早晨殺掉了一只虎斑貓。 虎斑貓是木匠養的,木匠被關在西側屋子的酒窖里。酒窖廢棄了三五年,僅有的氣...
    尺八_閱讀 278評論 3 3
  • 白衫映著清澈的臉龐 紫裙在徐風中輕輕張揚 你低著頭嬌羞的模樣 便是春日里最好的風光 歲月在吟聲淺唱 柳絮像白雪飄蕩...
    simple_1766閱讀 333評論 1 4