数据结构 图 网络
图表示多对多关系,包含顶点集合V和边集合E,不考虑重边和自回路 网络有向图或无向图+边的权重 表示邻接矩阵 方便直观,方便检查2个顶点是否存在边,检查所有邻接点,方便计算出度入度(边数) 稀疏图浪费空间,稀疏图统计总边数浪费时间 无向图,只需要一半空间存储即可 邻接表 用链表存储 每条链表就是邻接矩阵的一行,每个节点是邻接矩阵中 深度优先搜索 用邻接表存储,复杂度O(N+E) 用邻接矩阵存储,复杂度O(N^2) 广度优先搜索(借助队列) 用邻接表存储,复杂度O(N+E) 用邻接矩阵存储,复杂度O(N^2) 连通问题 连通: 如果V到W有一条路径.则称v和w连通 连通图: 图中任意两天均连通 最小路径问题(递增,非递减) 无权图:BFS 有权图的单源最短路算法:Dijkstra算法(最短路径算法) 1234567891011121314151617181920// $dist被初始化为正无穷 // 有权图的单源最短路算法function dijkstra($s){ while (1) { $v = '未收录顶点中dist...
git 创建补丁
1git bundle create ../test.bundle master ^release
mysql union 字段顺序 必须一致
union字段顺序必须一致,否则后面的字段名会失效,都会以第一个顺序为准 1SELECT 1 AS a , 11 AS b UNION SELECT 2 AS b, 22 AS a a b 1 11 — — 2 22
php 把一个普通数组初始化为 堆 二叉堆 O(n) 最小堆
初始化最小堆代码如下 1234567891011121314151617181920212223242526272829303132333435363738394041424344function min_heap($tree){ $maxIndex = count($tree) - 1; $lastParentIndex = ceil($maxIndex / 2 - 1); $focusIndex = $lastParentIndex; // 关注点从最后一个父节点向上 while ($focusIndex >= 0) { // 关注点逐渐向下比较 $parentIndex = $focusIndex; while ($parentIndex <= $lastParentIndex) { // 不加哨兵,则左子树为2n+1,右子树为2n+2 // 第一个元素未哨兵时候,左子树为2n,右子树为2n+1 ...
linux 后台 进程
写法1nohup php yii queue/listen >> runtime/queue.log 2>&1 & 这样很多时候,关闭窗口还是会进程退出,我们不能直接关闭窗口,需要使用exit命令退出
yii2 执行数据库 队列 迁移
队列的db驱动迁移使用了命名空间 1php yii migrate --migrationNamespaces=yii\queue\db\migrations 普通迁移 1php yii migrate --migrationPath=@yii/rbac/migrations/
mysql json字段
json字段取消双引号12extra_fields->>'$.buyer_nationality'json_unquote(json_extract(content,'$.name')) 带双引号1extra_fields->'$.buyer_nationality' 建立虚拟字段 并建立索引做了100万行json数据,测试结果 sql1SELECT * FROM cmf_third_party_user WHERE more->>"$.phone" = '13051450977' text类型使用text类型存储json字符串,速度较慢4.5s json类型把more改为json类型,由于mysql内部的优化,速度有了较大提升1.6s(没有虚拟字段,大概1.2s) 独立字段如果有一个普通的字段,没有索引,少了json那些操作速度比较快 1SELECT * FROM cmf_third_party_user WHERE openid = ...
mysql 用一个表更新另一个表 子查询更新一个表
12345678UPDATE cmf_user u, ( SELECT if(more ->> '$.mobile' IS NULL, '', more ->> '$.mobile') AS mobile , user_id FROM `cmf_third_party_user` ) bSET u.mobile = b.mobileWHERE u.id = b.user_id AND u.mobile = '' 123UPDATE a, bSET a.title = b.title, a.name = b.nameWHERE a.id = b.id
平衡二叉树 平衡二叉搜索树 AVL树 调整
https://blog.csdn.net/qq_43915356/article/details/106381560 平衡二叉树全称平衡二叉搜索树,也叫AVL树。是一种自平衡的树。 不平衡的“发现者”是Mar,“麻烦结点”Nov 在发现者右子树的右边,因而叫 RR 插入,需要RR 旋转(右单旋) “发现者”是Mar,“麻烦结点”Apr 在发现者左子树的左边,因而叫 LL 插入,需要LL 旋转(左单旋) “发现者”是May,“麻烦结点”Jan在左子树的右边,因而叫 LR 插入,需要LR 旋转 麻烦节点的父节点即最下层平衡因子非0节点C,与其父节点B(发现节点的左节点)进行右旋转(RR),导致C代替B的位置,B成为C的左节点,C的左子树CL成为B的右子树。 发现节点A与C进行左旋转(LL),导致C代替A的位置,A成为C的右节点,C的右子树成为A的左子树 “发现者”是May,“麻烦结点”Jan在左子树的右边,因而叫 LR 插入,需要LR 旋转
ae 脚本文档 adobe after effects extendscript
ae脚本使用说明https://helpx.adobe.com/cn/after-effects/using/scripts.html ae开发官网https://www.adobe.io/after-effects/ ae脚本https://ae-scripting.docsforadobe.dev/ extendscripthttps://extendscript.docsforadobe.dev/