php 实现算法
PHP 实现常见算法的方法
PHP 作为一门服务器端脚本语言,可以实现多种算法。以下是一些常见算法的 PHP 实现示例。
排序算法
冒泡排序
function bubbleSort($array) {
$length = count($array);
for ($i = 0; $i < $length - 1; $i++) {
for ($j = 0; $j < $length - $i - 1; $j++) {
if ($array[$j] > $array[$j + 1]) {
$temp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
}
}
}
return $array;
}
快速排序
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));
}
搜索算法
二分查找

function binarySearch($array, $target) {
$low = 0;
$high = count($array) - 1;
while ($low <= $high) {
$mid = floor(($low + $high) / 2);
if ($array[$mid] == $target) {
return $mid;
}
if ($array[$mid] < $target) {
$low = $mid + 1;
} else {
$high = $mid - 1;
}
}
return -1;
}
递归算法
斐波那契数列
function fibonacci($n) {
if ($n == 0) {
return 0;
}
if ($n == 1) {
return 1;
}
return fibonacci($n - 1) + fibonacci($n - 2);
}
动态规划
最长公共子序列
function lcs($X, $Y) {
$m = strlen($X);
$n = strlen($Y);
$L = array_fill(0, $m + 1, array_fill(0, $n + 1, 0));
for ($i = 0; $i <= $m; $i++) {
for ($j = 0; $j <= $n; $j++) {
if ($i == 0 || $j == 0) {
$L[$i][$j] = 0;
} elseif ($X[$i - 1] == $Y[$j - 1]) {
$L[$i][$j] = $L[$i - 1][$j - 1] + 1;
} else {
$L[$i][$j] = max($L[$i - 1][$j], $L[$i][$j - 1]);
}
}
}
return $L[$m][$n];
}
加密算法
MD5 哈希

$hash = md5('your_string');
SHA-256 哈希
$hash = hash('sha256', 'your_string');
数据结构实现
栈
class Stack {
private $stack = [];
public function push($item) {
array_push($this->stack, $item);
}
public function pop() {
if ($this->isEmpty()) {
return null;
}
return array_pop($this->stack);
}
public function isEmpty() {
return empty($this->stack);
}
}
队列
class Queue {
private $queue = [];
public function enqueue($item) {
array_push($this->queue, $item);
}
public function dequeue() {
if ($this->isEmpty()) {
return null;
}
return array_shift($this->queue);
}
public function isEmpty() {
return empty($this->queue);
}
}
以上示例展示了 PHP 实现常见算法的方式,可以根据具体需求进行调整和优化。





