日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

int 互换 java_Java基础中Int类型变量值互换的几种方法

發(fā)布時(shí)間:2024/9/3 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 int 互换 java_Java基础中Int类型变量值互换的几种方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在很多時(shí)候,我們會(huì)使用到將兩個(gè)整型變量值進(jìn)行互換,比如冒泡排序,通過判斷來將數(shù)組變量的值逐步交換,那么怎么交換值才能最有效最節(jié)省空間呢?

首先,我們會(huì)想到的,用一個(gè)零時(shí)變量來做中間的過度存儲(chǔ)空間,這是很容易想到的方法,實(shí)現(xiàn)如下:

int i = 10;  //聲明變量 i,并給 i 賦值為10

int j = 20;  //聲明變量 j,并給 j 賦值為20

int temp;  //聲明零時(shí)變量temp

那么,我們要將變量 i 的值賦給變量 j ,就得通過零時(shí)變量temp存儲(chǔ)其中一個(gè)變量的值:

temp = i ;   //將變量 i 值暫存于零時(shí)變量temp中,即temp = 10;

i = j ;    //將變量 j 的值賦值給變量 i ,即 i = 20;

j = temp ;    //將零時(shí)變量存放的值賦值給變量 j ,即 j = 10;

這樣,我們就完成了最簡(jiǎn)單的值互換。

其次,既然我們需要互換的是int類型的變量,那么就可以進(jìn)行數(shù)值運(yùn)算及加減乘除來實(shí)現(xiàn)變量值的互換。

int i = 10;  //聲明變量 i,并給 i 賦值為10

int j = 20;  //聲明變量 j,并給 j 賦值為20

i = i + j;  //將 i + j(10+20) 的和賦值給變量 i ,賦值后變量 i 的值為 30

j = i - j;  //將 i - j(30-20) 的差賦值給變量 j ,賦值后變量 j 的值為 10

i = i - j;  //再運(yùn)算一次,將 i - j(30 - 10)的差賦值給變量 i ,賦值后變量 i 的值為 20

這樣,我們也完成了兩個(gè)變量值的互換,這樣的好處是不需要第三個(gè)變量參與,節(jié)省了運(yùn)行內(nèi)存。

最后,我們可以通過位運(yùn)算中的異或運(yùn)算(^)實(shí)現(xiàn)變量值的交換,異或運(yùn)算是位運(yùn)算,其規(guī)則是相同為0,不同為1,即1^0或0^1的取值為1,1^1或0^0的取值為0,實(shí)現(xiàn)如下:

int i = 10;  //聲明變量 i,并給 i 賦值為10

int j = 20;  //聲明變量 j,并給 j 賦值為20

//其中變量 i 的值為10,其二進(jìn)制編碼為:0000 1010

//其中變量 j 的值為20,其二進(jìn)制編碼為:0001 0100

i = i ^ j ;  //即為 10 ^ 20 ,根據(jù) ^ 的運(yùn)算規(guī)則可知,其結(jié)果是 0001 1110 ,轉(zhuǎn)換成十進(jìn)制為:24?+ 23?+ 22+ 2 = 30 ,

//并將30賦值給變量 i ,即 i = 30

j = i ^ j ;  //即為 30 ^ 20,其結(jié)果是 0000 1010,轉(zhuǎn)換成十進(jìn)制為10,并將結(jié)果賦值給變量 j ,即 j = 10

i = i ^ j ;  //即為 30 ^ 10,其結(jié)果是 0001 0100,轉(zhuǎn)換成十進(jìn)制為20,并將結(jié)果賦值給變量 i ,即 i = 20

這種方式不需要使用零時(shí)變量,且是通過位運(yùn)算,增加了其運(yùn)算速度。

總結(jié),在完成代碼時(shí),我們要在解決問題的同時(shí)思考更加高效率的解決方案,當(dāng)然,我們也要明白不同方案的優(yōu)點(diǎn)和缺點(diǎn),雖然有些方案可以提高運(yùn)行效率,比如上述的第三種方案,但是他沒有第一種方案直觀,并且效率也沒有說完全高太多,只要在可接受的運(yùn)行時(shí)間和空間內(nèi)解決問題,那么我們完全可以使用第一種更為簡(jiǎn)單和直觀的方式解決問題。

原文:https://www.cnblogs.com/stupidxixi/p/9922031.html

總結(jié)

以上是生活随笔為你收集整理的int 互换 java_Java基础中Int类型变量值互换的几种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。