文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP常见基础算法实例分析

2023-06-30 16:59

关注

这篇文章主要介绍“PHP常见基础算法实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP常见基础算法实例分析”文章能帮助大家解决问题。

PHP常见基础算法实例分析

TODO

<?phpclass Algorithmic {        function fib($n) {        if ($n < 2) {            return 1;        } else {            return $this->fib($n - 1) + $this->fib($n - 2);        }    }        function fib2($n) {        if ($n < 2) {            return 1;        } else {            $arr = [1, 1];            for ($i = 2; $i <= $n; $i++) {                $arr[$i] = $arr[$i - 1] + $arr[$i - 2];            }        }        return $arr[$n];    }        function fib3($n) {        if ($n < 2) {            return 1;        } else {            $last = 1;  //等式第二项            $lastLast = 1;  //等式第一项            for ($i = 2; $i <= $n; $i++) {                $current = $last + $lastLast;                $lastLast = $last;                $last = $current;            }            return $current;        }    }        function scanFile($dir) {        $fileList = [];        if (is_dir($dir)) {            $dh = opendir($dir);            while ($file = readdir($dh)) {                if ($file == '.' || $file == '..') continue;  //linux下一切皆文件                $newDir = $dir . '/' . $file;                if (is_dir($newDir)) {                    $fileList[][$file] = $this->scanFile($newDir);                } else {                    $fileList[] = $file;                }            }            closedir($dh);        }        return $fileList;    }        function binarySort($arr, $target) {        if (!is_array($arr) || count($arr) < 2) {            return $arr;        }        $len = count($arr);        $start = 0;        $end = $len - 1;        while ($start <= $end) {            $middle = floor(($start + $end) / 2) ;            if ($arr[$middle] == $target) {                return $middle;            } elseif ($arr[$middle] < $target) {                $start = $middle + 1;            } else {                $end = $middle - 1;            }        }        return false;    }        function bubbleSort($arr) {        for ($i = count($arr) - 1; $i > 0; $i--) {            for ($j = 0; $j < $i; $j++) {                if ($arr[$j+1] < $arr[$j]) {                    $temp = $arr[$j];                    $arr[$j] = $arr[$j+1];                    $arr[$j+1] = $temp;                }            }        }        return $arr;    }        function quickSort($arr) {        if (!is_array($arr) || count($arr) < 2) {            return $arr;        }        $base = $arr[0];        $left = [];        $right = [];        for ($i = 1; $i <= count($arr) - 1; $i++) {            if ($arr[$i] < $base) {                $left[] = $arr[$i];            } else {                $right[] = $arr[$i];            }        }        return array_merge(array_merge($this->quickSort($left),[$base]), $this->quickSort($right));    }        function twoSum($arr, $sum = 8){        $tempArr = [];        foreach ($arr as $k => $v) {            if (isset($tempArr[$v])) {                return [$k, $tempArr[$v]];            }            $tempArr[$sum-$v] = $k;        }        return [];    }}$algorithmic = new Algorithmic();//var_dump($algorithmic->scanFile("./"));//var_dump($algorithmic->twoSum([4,5,3,4,5,67,787]));//var_dump($algorithmic->fib3(4));  // 1 1 2 3 5//var_dump($algorithmic->binarySort([1,3, 4, 5,7,9], 3));  //var_dump($algorithmic->quickSort([14,5,13,114,4,3,167,87,14]));

关于“PHP常见基础算法实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯