演算法學習 一 位運算練習

2021-10-25 05:41:52 字數 1786 閱讀 7022

案例:輸入一串陣列並賦值,賦值的範圍為1~arr.length-1,然後生成乙個隨機數(1 ~ arr.length-1),將生成的隨機數放在arr[arr.length-1] ,生成乙個隨機位置,將陣列最後一位和生成的隨機位置所在的陣列交換,最後找出重複的那個陣列。

public

class

findrepetition

public

static

void

solution01

(int ints)

random random =

newrandom()

;int ran = random.

nextint

(ints.length -1)

+1; ints[ints.length-1]

=ran;

int index =

newrandom()

.nextint(n

);//需要交換

changepositionbyindex

(ints,index)

;print

(ints,5)

;shufflearr

(ints)

;print

(ints,5)

;int temp=0;

for(

int i =

0; i < ints.length; i++)}

system

.out.

println

(temp);}

public

static

void

solution02

(int ints)

random random =

newrandom()

;int ran = random.

nextint

(ints.length -1)

+1; ints[ints.length-1]

=ran;

int index =

newrandom()

.nextint(n

);//需要交換

changepositionbyindex

(ints,index)

;print

(ints,6)

;int

helper =

newint

[ints.length -1]

;for

(int i =

0; i < helper.length+

1; i++

)for

(int i =

0; i < helper.length; i++)}

}public

static

void

changepositionbyindex

(int arr ,

int index)

}public

static

void

print

(int arr ,

int columns)

else

}else

else}}

}public

static

void

shufflearr

(int arr )

}}

執行結果:

演算法學習 位運算

判斷奇偶 x 1 1 x為奇數 x 1 0 x為偶數獲取二進位制x的第n位是0還是1 如果 x 1 n 0,則該位為0,否則位11左移表示乘以2,1右移表示除以2 2 n 1 n 1 2 n 1 n使用異或運算可以消除重複 a a 0 a 0 a a b a b消除二進位制的最後乙個1 x x 1 ...

CSAPP 實驗一 位運算

課程鏈結如下 coursera hardware software inte ce 這門課的大部分內容是對應於書 深入理解計算機系統 該書的英文名稱是 computer systems a programmer s perspective 該書講解了計算機的底層知識,其中大部分我認為是乙個合格程式設...

C語言基礎一 位運算

程式是按照從上到下的順序依次執行的。選擇結構,程式中會判斷並選擇一條符合條件的語句執行。if 條件表示式 執行的語句 else if 條件表示式 執行的語句 else 執行的語句 switch 表示式 不能為小數,因為計算機中的小數只能儲存近似值。break 是跳出這個選擇結構,若是沒有break,...