陣列的幾個面試演算法

2021-07-03 21:59:43 字數 793 閱讀 2964

陣列的面試演算法-----氣泡排序、洗牌演算法、經典去除重複演算法:

1.氣泡排序:

int arr = ;

//控制氣泡排序的次數

for(int i = 0; i

for(int j = 0; j

//判斷從小到大排序

if(arr[i]>arr[j+1])}}

總結:拿出第乙個數和內迴圈的第二個數開始比,內迴圈一輪結束後,陣列中的最後乙個數為最大;

拿出第二個數和內迴圈的第三個數開始比,內迴圈一輪結束後,陣列中的倒數第二個數字第二大;

。。。。。。。以此類推。一共要比較的次數為:陣列總的最大長度-1。

2.洗牌演算法:

int arr = ;

for(int i = arr.length-1; i>=1; i--)

總結:洗牌演算法又稱做打亂演算法。迴圈次數為陣列中值的個數。然後把陣列中最後乙個值和隨機數取到的值交換,

以此類推。並且交換後陣列中最後乙個值不變,從而實現了打亂這個陣列的作用。

3.去除重複演算法:

boolean user = new boolean[arr.length];

總結:去除重複演算法的作用,在於怎麼運用在while的迴圈的語句中。取出arr陣列中的乙個值後讓user陣列中

對應的值變為true。這樣就可以不會取到那個已經從arr陣列中拿到的值。boolean陣列預設值為false。

幾個面試演算法

幾個面試演算法 usr local php7 bin php arr array 1,3,9,23,54 螺旋矩陣 matrix 1,2,3 4 5 6,7,8 9,10 11,12,13,14,15 16,17,18,19,20 21,22,23,24,25 echo 23 的位置 erfen a...

面試演算法題

前幾天,一好友去筆試,有一題 現在有1000個蘋果,和10個箱子,如何把這1000個蘋果裝在這10個箱子裡,才能使不管任何數量 1 1000 的蘋果,都能一次給出?當時,我們都想,出題這人。今天,在想移位的時候,突然想到了,這絕對是二進位制數的變種。分析 1000個蘋果,最接近1024,轉化為2進製...

面試演算法記錄

1.親和數問題 求500萬以內的所有親和數 如果兩個數a和b,a的所有真因數之和等於b,b的所有真因數之和等於a,則稱a,b是一對親和數。例如220和284,1184和1210,2620和2924。思路 220 1 2 4 71 142 sum 284 284 1 2 4 5 10 11 20 22...