幾個面試演算法
#!/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...