博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php面试算法大全
阅读量:3921 次
发布时间:2019-05-23

本文共 4332 字,大约阅读时间需要 14 分钟。

$i; $j--) { if ($array[$j] < $array[$j - 1]) { $tmp = $array[$j]; $array[$j] = $array[$j - 1]; $array[$j - 1] = $tmp; } } } return $array;}/** * 快速排序(数组排序) * @param $array * @return array */function quicksort($array){ if (count($array) <= 1) return $array; $key = $array[0]; $left_arr = array(); $right_arr = array(); for ($i = 1; $i < count($array); $i++) { if ($array[$i] <= $key) $left_arr[] = $array[$i]; else $right_arr[] = $array[$i]; } $left_arr = quicksort($left_arr); $right_arr = quicksort($right_arr); return array_merge($left_arr, array($key), $right_arr);}/** * 字符串长度 * @param $str * @return int */function strlen($str){ if ($str == '') return 0; $count = 0; while (1) { if ($str[$count] != NULL) { $count++; continue; } else { break; } } return $count;}/** * 截取子串 * @param $str * @param $start * @param null $length * @return string|void */function substr($str, $start, $length = NULL){ $substr = ''; if ($str == '' || $start > strlen($str)) return; if (($length != NULL) && ($start > 0) && ($length > strlen($str) - $start)) return; if (($length != NULL) && ($start < 0) && ($length > strlen($str) + $start)) return; if ($length == NULL) $length = (strlen($str) - $start); if ($start < 0) { for ($i = (strlen($str) + $start); $i < (strlen($str) + $start + $length); $i++) { $substr .= $str[$i]; } } if ($length > 0) { for ($i = $start; $i < ($start + $length); $i++) { $substr .= $str[$i]; } } if ($length < 0) { for ($i = $start; $i < (strlen($str) + $length); $i++) { $substr .= $str[$i]; } } return $substr;}/** * 字符串翻转 * @param $str * @return int|string */function strrev($str){ $rev_str = ''; if ($str == '') return 0; for ($i = (strlen($str) - 1); $i >= 0; $i--) { $rev_str .= $str[$i]; } return $rev_str;}/** * 字符串比较 * @param $s1 * @param $s2 * @return bool|int */function strcmp($s1, $s2){ if (strlen($s1) < strlen($s2)) return -1; if (strlen($s1) > strlen($s2)) return 1; for ($i = 0; $i < strlen($s1); $i++) { if ($s1[$i] == $s2[$i]) { continue; } else { return false; } } return 0;}/** * 查找字符串 * @param $str * @param $substr * @return bool|int */function strstr($str, $substr){ $m = strlen($str); $n = strlen($substr); if ($m < $n) return false; for ($i = 0; $i <= ($m - $n + 1); $i++) { $sub = substr($str, $i, $n); if (strcmp($sub, $substr) == 0) return $i; } return false;}/** * 字符串替换 * @param $substr * @param $newsubstr * @param $str * @return bool|string */function str_replace($substr, $newsubstr, $str){ $m = strlen($str); $n = strlen($substr); $x = strlen($newsubstr); if (strchr($str, $substr) == false) return false; for ($i = 0; $i <= ($m - $n + 1); $i++) { $i = strchr($str, $substr); $str = str_delete($str, $i, $n); $str = str_insert($str, $i, $x); } return $str;}/** * 插入一段字符串 * @param $str * @param $i * @param $substr * @return string */function str_insert($str, $i, $substr){ $startstr = ''; $laststr = ''; for ($j = 0; $j < $i; $j++) { $startstr .= $str[$j]; } for ($j = $i; $j < strlen($str); $j++) { $laststr .= $str[$j]; } $str = ($startstr . $substr . $laststr); return $str;}/** * 删除一段字符串 * @param $str * @param $i * @param $j * @return string */function str_delete($str, $i, $j){ $startstr = ''; $laststr = ''; for ($c = 0; $c < $i; $c++) { $startstr .= $str[$c]; } for ($c = ($i + $j); $c < strlen($str); $c++) { $laststr .= $str[$c]; } $str = ($startstr . $laststr); return $str;}/** * 复制字符串 * @param $s1 * @param $s2 * @return array|void */function strcpy($s1, $s2){ if (strlen($s1) == NULL || !isset($s2)) return; for ($i = 0; $i < strlen($s1); $i++) { $s2[] = $s1[$i]; } return $s2;}/** * 连接字符串 * @param $s1 * @param $s2 */function strcat($s1, $s2){ if (!isset($s1) || !isset($s2)) return; $newstr = $s1; for ($i = 0; $i < count($s1); $i++) { $newstr .= $s1[$i]; } return $newstr;}

转载地址:http://ylhrn.baihongyu.com/

你可能感兴趣的文章
龙芯开源社区上线.NET主页
查看>>
eShopOnContainers 知多少[11]:服务间通信之gRPC
查看>>
闲谈设计模式
查看>>
平台or职位,你怎么选?
查看>>
骚年快答 | 技术中台与业务中台都是啥?
查看>>
骚年快答 | 微服务架构中的BFF到底是啥?
查看>>
设计模式之适配器模式
查看>>
如何利用Gitlab-CI持续部署到远程机器?
查看>>
.NET Core + K8S + Loki 玩转日志聚合
查看>>
ASP.NET Core中的分布式缓存
查看>>
在ASP.NET Core中创建自定义端点可视化图
查看>>
五年了,别再把务虚会开 “虚” 了
查看>>
一文看懂"async"和“await”关键词是如何简化了C#中多线程的开发过程
查看>>
每天都在支付,你真的了解信息流和资金流?
查看>>
.Net Core 自定义配置源从配置中心读取配置
查看>>
设计模式之享元模式
查看>>
单例模式最佳实践
查看>>
.NET Core + Spring Cloud:服务注册与发现
查看>>
今天你内卷了吗?
查看>>
设计模式之代理模式
查看>>