随笔分类 -  算法

php实现堆排序
摘要:堆排序 堆排序求升序用大顶堆,求降序用小顶堆。 本例用求降序的小顶堆来解析。 堆排序步骤如下: 1、我们将数据(49、38、65、97、76、13、27、50)建立一个数组$arr;2、用数组$arr建立一个小顶堆(主要步骤,会在代码注释里解释,下图是用一个数组建立小顶堆的过程);3、将堆的根(最小 阅读全文

posted @ 2021-01-22 10:38 孤灯引路人 阅读(247) 评论(1) 推荐(0) 编辑

php实现微信红包算法
摘要:PHP实现微信红包算法和微信红包的架构设计简介 使用PHP发红包,当我们输入红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,每个红包金额不等,就是要求红包金额要有差异,所有红包金额总额应该等于总金额。 首先给大家分析下规律: 设定总金额为10元,有N个人随 阅读全文

posted @ 2020-11-17 00:24 孤灯引路人 阅读(479) 评论(0) 推荐(0) 编辑

php动态规划
摘要:问题:假设有一个背包的负重最多可达8公斤,而希望在背包中装入负重范围内可得之总价物品,假设是水果好了,水果的编号、单价与重量如下所示:1 栗子 4KG $45002 苹果 5KG $57003 橘子 2KG $22504 草莓 1KG $11005 甜瓜 6KG $6700分析:背包问题是关于最佳化 阅读全文

posted @ 2020-11-10 14:02 孤灯引路人 阅读(245) 评论(0) 推荐(0) 编辑

php雪花算法
摘要:SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的,后面的代码中有详细的注解。 这 64 个 bit 中,其中 1 个 bi 阅读全文

posted @ 2020-09-24 11:50 孤灯引路人 阅读(648) 评论(0) 推荐(0) 编辑

php常见算法
摘要:1.使对象可以像数组一样进行foreach循环,要求属性必须是私有。(Iterator模式的PHP5实现,写一类实现Iterator接口) <?php class Test implements Iterator{ private $item = array('id'=>1,'name'=>'php 阅读全文

posted @ 2020-08-04 16:28 孤灯引路人 阅读(97) 评论(0) 推荐(0) 编辑

红黑树的插入过程
摘要:红黑树是一种自平衡的二叉查找树 它具有以下5个性质: 1、节点颜色必须是红色或者黑色 2、根节点是黑色 3、每个叶子节点(NIL节点、空节点)是黑色的 4、每个红色节点的两个子节点都是黑色 5、从任一节点到每个叶子的所有路径都包含数目相同的黑色节点 假设我们插入这些数据:12 23 34 40 45 阅读全文

posted @ 2020-01-24 16:02 孤灯引路人 阅读(578) 评论(0) 推荐(0) 编辑

B+树的插入图片演示
摘要:B+树和二叉树、平衡二叉树一样都是经典的数据结构。 B+树由B树和索引顺序访问方法(ISAM,这就是MyISAM引擎最初参考的数据结构)演化而来,实际中已经没有使用B树的情况了。 B+树是为磁盘或其他直接存储辅助设备设计的一种平衡查找时。 B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶子 阅读全文

posted @ 2020-01-18 13:54 孤灯引路人 阅读(1023) 评论(0) 推荐(0) 编辑

二叉树遍历
摘要:class Node { public $data; public $left; public $right; public function __construct($data){ $this->data=$data; } } class CreateTree{ public $tree; //二 阅读全文

posted @ 2019-12-24 20:04 孤灯引路人 阅读(141) 评论(0) 推荐(0) 编辑

循环链表
摘要:class Node{ public $data=null; public $next = null; public function __construct($data=null){ $this->data = $data; } } class LinkdList{ public $header= 阅读全文

posted @ 2019-12-24 10:50 孤灯引路人 阅读(252) 评论(0) 推荐(0) 编辑

双向链表
摘要:class Node{ public $data=null; public $next = null; public $prev=null; public function __construct($data=null){ $this->data = $data; } } class BubbleL 阅读全文

posted @ 2019-12-24 10:48 孤灯引路人 阅读(104) 评论(0) 推荐(0) 编辑

单项链表
摘要:class Node{ public $data=null; public $next=null; public function __construct($data=null){ $this->data = $data; } } class LinkNode{ public $header=nul 阅读全文

posted @ 2019-12-24 08:09 孤灯引路人 阅读(110) 评论(0) 推荐(0) 编辑

[alv]平衡二叉树
摘要:class AVLNode{ public $data; // 节点数据 public $left = null; // 左子结点 public $right = null; // 右子节点 public $bf = 0; // 平衡因子BF public $parent = null; // 存储 阅读全文

posted @ 2019-12-24 08:07 孤灯引路人 阅读(125) 评论(0) 推荐(0) 编辑

大文件归并排序
摘要://大文件排序 function countsLines($path){ $fd = fopen($path,"r"); $total=0; while(!feof($fd)){ $total++; fgets($fd); } return $total; } $filePath = "./file 阅读全文

posted @ 2019-12-24 08:06 孤灯引路人 阅读(353) 评论(0) 推荐(0) 编辑

快速排序查找匹配元素最前面是否有对应得元素
摘要:$arr = [1,2,3,3,4,5,6]; function binSearch($arr,$num,$start,$end){ if($start > $end){ return -1; } $mid = floor(($start+$end)/2); $midValue = $arr[$mi 阅读全文

posted @ 2019-12-24 00:20 孤灯引路人 阅读(125) 评论(0) 推荐(0) 编辑

二分查找
摘要:$nums = [1, 2, 3, 4, 5, 6]; $num=5; $start = 0; $end = count($nums)-1; echo binary_search($nums,$num,$start,$end); function binary_search($nums,$num,$ 阅读全文

posted @ 2019-12-24 00:19 孤灯引路人 阅读(140) 评论(0) 推荐(0) 编辑

冒泡排序
摘要:$arr = [100,3,5,6,90,10]; for($i=0;$i<count($arr)-1;$i++){ for($j=0;$j<count($arr)-$i-1;$j++){ if($arr[$j] > $arr[$j+1]){ $tmp = $arr[$j]; $arr[$j]=$a 阅读全文

posted @ 2019-12-24 00:18 孤灯引路人 阅读(76) 评论(0) 推荐(0) 编辑

快速排序
摘要:$arr= array(2,13,42,34,56,23,67,365,87665,54,68,3); $info = quick_sort($arr); print_r($info); function quick_sort($arr){ if(count($arr) <= 1){ return 阅读全文

posted @ 2019-12-24 00:16 孤灯引路人 阅读(127) 评论(0) 推荐(0) 编辑

归并排序
摘要:$arr=array(19,7,5,1,3,10); $tmp = mergeSort($arr); print_r($tmp); function mergeSort($arr){ $start = 0; $end = count($arr)-1; if($end == 0){ return $a 阅读全文

posted @ 2019-12-24 00:15 孤灯引路人 阅读(115) 评论(0) 推荐(0) 编辑

选择排序
摘要:$nums = [4, 5, 6, 3, 2, 1]; for($i=0;$i<count($nums);$i++){ $min = $i; for($j=$i+1;$j<count($nums);$j++){ if($nums[$j] < $nums[$min]){ $min = $j; } } 阅读全文

posted @ 2019-12-24 00:13 孤灯引路人 阅读(81) 评论(0) 推荐(0) 编辑

插入排序
摘要://插入排序 $arr = [2, 3, 1, 6, 4, 7, 5, 9]; for($i=1;$i<count($arr);$i++){ $key = $arr[$i]; $pos = $i; while($pos > 0 && $arr[$pos-1] > $key){ $arr[$pos]= 阅读全文

posted @ 2019-12-24 00:12 孤灯引路人 阅读(94) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示