重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下PHP怎么实现几个排序和查找算法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
“只有客户发展了,才有我们的生存与发展!”这是成都创新互联的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都网站建设、网站建设、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。排序冒泡排序每一次冒出一个大的值
function bubbleSort($arr) { $count = count($arr); if ($count == 0) return false; for ($i = 0; $i < $count - 1; $i++) { for ($k = 0; $k < $count - 1 - $i; $k++) { if ($arr[$k] < $arr[$k + 1]) { $tmp = $arr[$k]; $arr[$k] = $arr[$k + 1]; $arr[$k + 1] = $tmp; } } } return $arr; }快速排序
选择一个值作为基准,比他小的放在左边,比他大的放在右边,然后对左右递归,最后合并
function quickSort($arr) { $count = count($arr); if ($count <= 1) return $arr; $base = $arr[0]; $left = $right = []; for ($i = 1; $i < $count; $i++) { if ($arr[$i] < $base) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } $left = quickSort($left); $right = quickSort($right); return array_merge($left, [$base], $right); }选择排序
选择一个值假设为最小,然后依次比较,发现比他小的就互换位置
function selectSort($arr) { $count = count($arr); if ($count <= 1) return $arr; for ($i = 0; $i < $count; $i++) { //假设最小值位置 $p = $i; //用假设的最小值$arr[$p]轮流比较,发现比他小的就互换 for ($j = $i + 1; $j < $count; $j++) { if ($arr[$p] > $arr[$j]) { $p = $j; } } if ($p != $i) { $tmp = $arr[$p]; $arr[$p] = $arr[$i]; $arr[$i] = $tmp; } } return $arr; }查找二分查找
二分查找必须是一个排序好的数组,每次拿数组中间位置的值与目标进行比较
function binarySearch(array $arr, $target) { $low = 0; $high = count($arr) - 1; while ($low <= $high) { $middle = floor(($high + $low) / 2); if ( $arr[$middle] == $target ) { return $middle; } elseif ( $arr[$middle] < $target ) { $low = $middle + 1; } else { $high = $middle - 1; } } return false; }
以上是PHP怎么实现几个排序和查找算法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!