各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

PHP实现几个排序和查找算法

管理员 2023-09-05
PHP
125

PHP实现几个排序和查找算法

内容导读

收集整理的这篇技术教程文章主要介绍了PHP实现几个排序和查找算法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1718字,纯文字阅读大概需要3分钟

内容图文

冒泡排序,快速排序,二分查找,虽然简单,但是一段时间不用的话就很容易忘记,这里是小编找来的用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视频教程

以上就是PHP实现几个排序和查找算法的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的PHP实现几个排序和查找算法全部内容,希望文章能够帮你解决PHP实现几个排序和查找算法所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部