本文来自laravel-china
二分查找(数组里查找某个元素)
1 | function bin_sch($array, $low, $high, $k){ |
顺序查找(数组里查找某个元素)
1 | function seq_sch($array, $n, $k){ |
线性表的删除(数组中实现)
1 | function delete_array_element($array , $i) |
冒泡排序(数组排序)
1 | function bubble_sort( $array) |
快速排序(数组排序)
1 | function quick_sort($array ) { |
字符串长度
1 | function strlen ($str) |
截取子串
1 | function substr($str, $start, $length=NULL) |
字符串翻转
1 | function strrev($str) |
字符串比较
1 | function strcmp($s1, $s2) |
查找字符串
1 | function strstr($str, $substr) |
字符串替换
1 | function str_replace($substr , $newsubstr, $str) |
自实现字符串处理函数
1 | function str_insert($str, $i , $substr) |
删除一段字符串
1 | function str_delete($str , $i, $j) |
复制字符串
1 | function strcpy($s1, $s2 ) |
连接字符串
1 | function strcat($s1 , $s2) |
简单编码函数(与php_decode函数对应)
1 | function php_encode($str) |
简单解码函数(与php_encode函数对应)
1 | function php_decode($str) |
简单加密函数(与php_decrypt函数对应)
1 | function php_encrypt($str) |
简单解密函数(与php_encrypt函数对应)
1 | function php_decrypt($str) |
王者编程大赛之四 — 约瑟夫环
1 | 约瑟夫环递推实现:https://www.fanhaobai.com/2017/12/2017-ziroom-king-4.html |
阶梯式电费算法
1 | 举个栗子,深圳为了推进市民节约用电推出了这样一个用电收费政策,电量使用阶梯式递增的收费计算方式,简单而言、用电越多平均的每度电越贵。(假设用户的每电量为整数,小于1度电则应缴费为0元) |
按照奖品概率分布抽奖
1 | //所有奖品信息 |
非负元素数组所有元素能组合的最大字符串
1 | [0, 9, 523, 94, 10, 4],排列组合后值最大数为:9945234100。 |
PHP生成随机红包算法
1 | 原文:比如要把 1 个红包分给 N 个人,实际上就是相当于要得到 N 个百分比数据 条件是这 N 个百分比之和 = 100/100。这 N 个百分比的平均值是 1/N。 并且这 N 个百分比数据符合一种正态分布(多数值比较靠近平均值)。 |
复杂度
1 | sum = n*(n+1)/2; //时间复杂度O(1) |
快速排序
1 | public static function quick($arr){ |
雪花算法
1 | 最高位是符号位,始终为0,不可用 |
时间复杂度
1 | //https://learnku.com/laravel/t/28462 |
排序
1 | //测试调用 |
两数之和
1 | 给定 $nums = [2, 7, 11, 15], $target = 9 |
索引顺序查找
1 | class Index{ |
数据结构栈和队列排队算法
1 | 栈也是一种特殊的线性表结构,数据只能在某一端进行操作,能操作数据的那一端为栈顶,对应的为栈底,数据入栈的过程就是入栈【压栈,进栈】,数据出栈的过程就是【弹栈,出栈】,遵循先进后出原则 FIRST IN LAST OUT 即 FILO 结构,基于连续的内存单元则是顺序栈表,一种是使用分散的内存单元存储为链式结构即链栈结构。 |
队列数据结构
1 | define('MAXSIZE',5);//队列空间大小 |
二分查找
1 | class Elem{ |
约瑟夫环
1 | 一群猴子排成一圈,按 1,2,…,n 依次编号。然后从第 1 只开始数,数到第 m 只,把它踢出圈,从它后面再开始数,再数到第 m 只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入 m、n, 输出最后那个大王的编号。 |
TwoSum
1 | func TwoSum1(nums []int, target int) []int { |
二分查找
1 | function binarySerach($data, $res) |
二分查找法
1 | 所谓二分查找,针对的是一个有序的数据集合(这点很重要),查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。注意到二分查找针对的必须是已经排序过的有序数组,否则不能使用该算法。 |
对称括号
1 | function isValid($s) { |
无限级菜单
1 | CREATE TABLE `SuperUserMenus` ( |