下面我将为您详细讲解“php四种基础算法代码实例”的攻略。
简介
本文主要介绍PHP四种基础算法代码实例,包括查找、排序、递归、动态规划四个方面,旨在帮助读者提高对PHP算法的理解和应用。
查找算法
二分查找
二分查找是一种基于比较目标值和查找中值的算法。查找前必须先体会「有序」的重要性。如果数据未排序,需要先排序。
代码实例:
function binarySearch($arr, $needle) {
$low = 0;
$high = count($arr) - 1;
while ($low <= $high) {
$middle = floor(($low + $high) / 2);
if ($arr[$middle] == $needle) {
return $middle;
} elseif ($arr[$middle] > $needle) {
$high = $middle - 1;
} else {
$low = $middle + 1;
}
}
return -1;
}
排序算法
冒泡排序
冒泡排序是一种重要的排序算法,其基本思想是通过比较相邻两个元素的大小,如果前一个元素比后一个元素大,则交换它们。
代码实例:
function bubbleSort($arr) {
$len = count($arr);
for ($i = 0; $i < $len - 1; $i++) {
$flag = false;
for ($j = 0; $j < $len - 1 - $i; $j++) {
if ($arr[$j] > $arr[$j+1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
$flag = true;
}
}
if ($flag == false) {
break;
}
}
return $arr;
}
递归算法
斐波那契数列
斐波那契数列是一个典型的递归算法问题,其规律是第n项等于第n-1项和第n-2项之和。
代码实例:
function fib($n) {
if ($n <= 1) {
return $n;
} else {
return fib($n-1) + fib($n-2);
}
}
动态规划算法
最长公共子序列
最长公共子序列问题是一类经典的用于解决字符串相关问题的算法问题,它求的是两个字符串的最长公共子序列的长度。
代码实例:
function lcsLength($text1, $text2) {
$m = strlen($text1);
$n = strlen($text2);
$lcs = array();
for ($i = 0; $i <= $m; $i++) {
for ($j = 0; $j <= $n; $j++) {
if ($i == 0 || $j == 0) {
$lcs[$i][$j] = 0;
} elseif ($text1[$i-1] == $text2[$j-1]) {
$lcs[$i][$j] = $lcs[$i-1][$j-1] + 1;
} else {
$lcs[$i][$j] = max($lcs[$i-1][$j], $lcs[$i][$j-1]);
}
}
}
return $lcs[$m][$n];
}
以上是本文介绍的PHP四种基础算法代码实例。希望这些示例能够对您的学习和实践有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php四种基础算法代码实例 - Python技术站