目录

一、文件夹遍历

二、九九乘法表

三、无限极递归分类

四、冒泡排序

五、选择排序

六、插入排序

七、快速排序


一、文件夹遍历

<?php
function allFile($path = __DIR__, $level = 1)
{if (is_dir($path) && is_readable($path)) {if($pd = opendir($path)) {while (($file = readdir($pd)) !== false) {if($file != '.' && $file != '..') {if (($subPath = $path . DIRECTORY_SEPARATOR . $file) && is_dir($subPath)) {echo "<pre />";echo '<span style="color: red;font-weight:bold;">' . str_repeat("--", $level) . $subPath . '</span>';self::allFile($subPath, $level++);} else {echo "<pre />";echo str_repeat("--", $level) . $subPath;}}}}} else {echo "{$path} is not a available dir";}
}

二、九九乘法表

<?php
function create()
{for ($i = 1; $i <= 9; $i++) {for ($j = 1; $j <= $i; $j++) {echo $j . '*' . $i . '=' . $i * $j . PHP_EOL;}echo "<br />";}
}

三、无限极递归分类

  • 递归算法
<?php
function getTree($array, $pid =0, $level = 0)
{//声明静态数组,避免递归调用时,多次声明导致数组覆盖static $list = [];foreach ($array as $key => $value) {//第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点if ($value['pid'] == $pid) {//父节点为根节点的节点,级别为0,也就是第一级$value['level'] = $level;//把数组放到list中$list[] = $value;//把这个节点从数组中移除,减少后续递归内存消耗unset($array[$key]);//递归调用getTree($array, $value['id'], $level+1);}}return $list;
}
  • 引用算法
<?php
function getTree($array)
{//第一步 构造数据$items = [];foreach($array as $value) {$items[$value['id']] = $value;}//第二部 遍历数据 生成树状结构$tree = [];foreach($items as $key => $value) {if(isset($items[$item['pid']])) {$items[$item['pid']]['son'][] = &$items[$key];} else {$tree[] = &$items[$key];}}return $tree;
}

四、冒泡排序

<?php
function bubbleSort($arr)
{$len = count($arr);for($i=1; $i<$len; $i++) {for($k=0; $k<$len-$i; $k++) {if($arr[$k] > $arr[$k+1]) {$tmp=$arr[$k+1];$arr[$k+1]=$arr[$k];$arr[$k]=$tmp;}}}return $arr;
}

五、选择排序

<?php
function selectSort($arr)
{$len=count($arr);for($i=0; $i<$len-1; $i++) {$p = $i;for($j=$i+1; $j<$len; $j++) {if($arr[$p] > $arr[$j]) {$p = $j;}}if($p != $i) {$tmp = $arr[$p];$arr[$p] = $arr[$i];$arr[$i] = $tmp;}}return $arr;
}

六、插入排序

<?php
function insertSort($arr)
{$len=count($arr);for($i=1; $i<$len; $i++) {$tmp = $arr[$i];for($j=$i-1;$j>=0;$j--) {if($tmp < $arr[$j]) {$arr[$j+1] = $arr[$j];$arr[$j] = $tmp;} else {break;}}}      return $arr;
}

七、快速排序

<?php
function quickSort($arr) {$len = count($arr);if($len <= 1) return $arr;$base_num = $arr[0];$left_array = [];$right_array = [];for($i=1; $i<$len; $i++) {if($base_num > $arr[$i]) {$left_array[] = $arr[$i];} else {$right_array[] = $arr[$i];}}$left_array = self::quickSort($left_array);$right_array = self::quickSort($right_array);return array_merge($left_array, array($base_num), $right_array);
}

php 常见算法合集相关推荐

  1. php 3 3公派算法代码,PHP常见算法合集代码实例

    许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣,下面是一些常用的算法和实例,大家可以好好学习下 一.文件夹遍历 function allFile($path = __DIR_ ...

  2. php最常见代码,PHP常见算法合集代码实例

    许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣,下面是一些常用的算法和实例,大家可以好好学习下 一.文件夹遍历<?php function allFile($path ...

  3. 《安富莱嵌入式周报》第297期:开源生物医学成像系统,可肺部成像,C算法合集500例,突出极致运算速度,数值方法书籍,芯片级激光隔离,3D打印机固件Marlin

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  4. 算法合集之《信息学中守恒法的应用》(不错的文章保存一下)

    算法合集之<信息学中守恒法的应用>(不错的文章保存一下) by 三江小渡 [摘要]本文提出和总结了"守恒法",以及它在信 息学竞赛中的一些应用.守恒的本质是寻找变化中的 ...

  5. git 强制更新远程_版本控制管理工具git的常见指令合集

    今天小千就来给大家介绍一下git中比较常见的指令合集,方便大家使用git,建议收藏起来方便日后查阅. 一.常见的命令 git help <command> # 显示command的help ...

  6. 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】

    Go语言开发环境搭建[Win.Linux.Mac] 1 SDK下载 官网地址:golang.org,因为一些原因国内可能无法访问.可以使用下面第二个链接. 国内地址访问:https://golang. ...

  7. 程序员小灰漫画算法合集

    2017合集 2018合集 2019合集 2020合集

  8. 互联网中常见的推荐算法合集

    在上网购物.看小说.买电影票的时候,都会遇到各种各样的推荐,给我们推荐一些我们曾经买过或收藏过的同类型产品,或者是推荐一些我们看过的小说题材相同的小说.那这些产品推荐都是如何实现的呢?我们今天就来聊聊 ...

  9. 八大排序算法合集 (归并排序、交换排序、插入排序、选择排序......)

    目录 一.归并排序 二.交换排序 1.快速排序 2.冒泡排序 三.插入排序 1.直接插入排序(基于顺序查找) 2.折半插入排序(基于折半查找) 3.希尔排序(基于逐趟缩小增量) 四.选择排序 0.直接 ...

最新文章

  1. MFC界面库BCGControlBar v25.3新版亮点:Gauge Controls
  2. java获取数据库MetaData
  3. linux系统监控和进程管理
  4. Java之读写锁ReadWriteLock实现
  5. IDEA的使用,手把手带你快速入门IDEA
  6. 数据分析应用统计学之分散性与变异性的测量【极差、四分位差、偏态系数、峰态系数、统计指标】
  7. linux源码acl,Linux自主访问控制机制模块详细分析之posix_acl.c核心代码注释与acl.c文件介绍...
  8. 2008 r2 server 提权_Windows UAC 本地提权(CVE-2019-1388)
  9. 3. 空实例对象调用静态方法的结果
  10. ddl(ddl是什么意思网络语)
  11. Cesi运行报错AttributeError: can‘t set attribute
  12. php 完成时钟,PHP 绘制时钟 高洛峰 细说PHP
  13. OS X El Capitan 10.11开启性能模式
  14. VBA基本操作(二)——空白单元格填充
  15. Unity游戏开发客户端面经——数学(初级)
  16. 数据外连接 LEFT OUT JOIN 的用法
  17. 辐射强度、辐亮度、辐照度——一文搞定
  18. Windows 系统镜像下载地址
  19. 开发工具快速下载地址
  20. 计算机网口扩展,计算机i/o接口扩展

热门文章

  1. 0c400汇编语言地址,在S7300/400型PLC中使用高级语言编程实例
  2. nexus windows版本下载安装
  3. Wireshark的下载安装详细版
  4. 推荐5款快速制作完美PPT的办公软件
  5. 应届GIS硕士求职经验总结
  6. 中国有完全自主的三维几何建模引擎和几何约束求解器吗?
  7. 一本通第三章 程序的控制结构
  8. PTZ摄像机中PTZ分别代表什么?
  9. 五种排序算法 -- Python语言实现
  10. 马斯克39页火星计划,也许......