幾個面試演算法

2021-08-24 17:59:19 字數 1359 閱讀 5164

幾個面試演算法

#!/usr/local/php7/bin/php

<?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($arr,0,count($arr),23)."\n\n";

// print_r(bucket($arr));

// print_r(quicksort($arr));

// print_r(mergesort($arr));

print_r(matrix($matrix));

//二分查詢

function erfen($arr,$low,$hight,$find)elseif($arr[$mid] > $find)elseif($arr[$mid] < $find)

// while($low <= $hight)elseif($arr[$mid]<$find)else

// }

return -1;

}// 木桶排序

function bucket($parameter)

foreach($arraystore as $k => $v)}}

return $bucket;

}// 快排

function quicksort(array $arr)else

} return array_merge(quicksort($left),(array)$base,quicksort($right));

}//歸併

function mergesort(array $numbers=array())

return array_merge($reg, $left, $right);

}//螺旋矩陣

function matrix($arr)

for($j=$i+1; $j<=$maxbottom; $j++) //構造右邊一條線 縱座標遞增,橫座標最大

for($j=$maxright-1;$j>=$i; $j--) //構造下邊一條線 縱座標最大,橫座標遞減

for($j=$maxbottom-1;$j>$i;$j--) //構造左邊一條線 縱座標遞減,橫座標最小

}return implode(",",$result);

}

陣列的幾個面試演算法

陣列的面試演算法 氣泡排序 洗牌演算法 經典去除重複演算法 1.氣泡排序 int arr 控制氣泡排序的次數 for int i 0 i for int j 0 j 判斷從小到大排序 if arr i arr j 1 總結 拿出第乙個數和內迴圈的第二個數開始比,內迴圈一輪結束後,陣列中的最後乙個數為...

面試演算法題

前幾天,一好友去筆試,有一題 現在有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...