php实现算法
PHP 实现常见算法的方法
PHP 可以实现多种算法,包括排序、搜索、递归、动态规划等。以下是几种常见算法的 PHP 实现方式。
冒泡排序(Bubble Sort)
冒泡排序通过多次遍历数组,每次比较相邻元素并交换位置,最终完成排序。

function bubbleSort($array) {
$n = count($array);
for ($i = 0; $i < $n - 1; $i++) {
for ($j = 0; $j < $n - $i - 1; $j++) {
if ($array[$j] > $array[$j + 1]) {
$temp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
}
}
}
return $array;
}
快速排序(Quick Sort)
快速排序采用分治策略,选择一个基准值(pivot),将数组分为两部分,递归排序。
function quickSort($array) {
if (count($array) <= 1) {
return $array;
}
$pivot = $array[0];
$left = $right = [];
for ($i = 1; $i < count($array); $i++) {
if ($array[$i] < $pivot) {
$left[] = $array[$i];
} else {
$right[] = $array[$i];
}
}
return array_merge(quickSort($left), [$pivot], quickSort($right));
}
二分查找(Binary Search)
二分查找适用于已排序数组,通过不断缩小查找范围提高效率。

function binarySearch($array, $target) {
$low = 0;
$high = count($array) - 1;
while ($low <= $high) {
$mid = (int)(($low + $high) / 2);
if ($array[$mid] == $target) {
return $mid;
}
if ($array[$mid] < $target) {
$low = $mid + 1;
} else {
$high = $mid - 1;
}
}
return -1; // 未找到
}
斐波那契数列(Fibonacci)
递归方式计算斐波那契数列,但效率较低,可用动态规划优化。
function fibonacci($n) {
if ($n <= 1) {
return $n;
}
return fibonacci($n - 1) + fibonacci($n - 2);
}
动态规划优化斐波那契
使用数组存储中间结果,减少重复计算。
function fibonacciDP($n) {
$dp = [];
$dp[0] = 0;
$dp[1] = 1;
for ($i = 2; $i <= $n; $i++) {
$dp[$i] = $dp[$i - 1] + $dp[$i - 2];
}
return $dp[$n];
}
总结
PHP 可以高效实现多种算法,如排序、查找、递归等。选择合适的算法可优化性能,如快速排序比冒泡排序更快,动态规划能减少递归的计算开销。






