light-tips
light-tips copied to clipboard
Some code tips about algorithms, php and more 🔥
Light Tips
记录Web开发所需要的一些基础知识,主要是PHP、MySQL、Javascript相关内容,还有一些基础的算法和数据结构。
收藏请点star,如发现有错误欢迎PR
数据结构和算法
算法
-
排序
- 简单排序
- 冒泡排序
- 插入排序
- 希尔排序(插入排序的改进)
- 选择排序
- 堆排序(选择排序的改进)
- 归并排序
- 桶排序
- 基数排序
- 快速排序
- 简单排序
-
搜索/查找
- 线性搜索
- 二分搜索
- 迭代版
- 递归版
- 插值搜索
- 指数搜索
- 树表查找
- 深度优先搜索DFS
- 广度优先搜索BFS
| 算法 | 最快时间复杂度 | 平均时间复杂度 | 最坏时间复杂度 | 空间复杂度 | 是否稳定 |
|---|---|---|---|---|---|
| 冒泡排序 | Ω(n) | Θ(n2) | O(n2) | O(1) | 稳定 |
| 插入排序 | Ω(n) | Θ(n2) | O(n2) | O(1) | 稳定 |
| 希尔排序 | Ω(nlogn) | Θ(n(log(n))2) | O(n(log(n))2) | O(1) | 不稳定 |
| 选择排序 | Ω(n2) | Θ(n2) | O(n2) | O(1) | 不稳定 |
| 堆排序 | Ω(nlogn) | Θ(nlogn) | O(nlogn) | O(1) | 不稳定 |
| 归并排序 | Ω(nlogn) | Θ(nlogn) | O(nlogn) | O(n) | 稳定 |
| 快速排序 | Ω(nlogn) | Θ(nlogn) | O(n2) | O(logn) | 不稳定 |
| 基数排序 | Ω(n+b) | Θ(n+b) | O(n+b) | O(n+k) | 稳定 |
O表示上界(小于等于)Ω表示下界(大于等于)Θ表示即是上界也是下界(等于)
数据结构
-
链表
- 双链表
- 环形链表
-
栈
- 链表实现
- 数组实现
-
队列
- 链表实现
- 数组实现
- 优先队列
- 环形队列
- 双端队列
-
树
- 二叉树
- 二叉搜索树
-
最大堆
- 最小堆
-
图
- 深度优先遍历
- 广度优先遍历
- 拓扑排序
- 最短路径之Floyd算法
- 单源最短路径Dijkstra算法
《剑指Offer》
-
链表
- 从头到尾打印链表
- 链表中倒数第k个节点
- 反转链表
- 合并两个排序的链表
- 复杂链表的复制
- 删除链表中重复的节点
- 两个链表的第一个公共节点
- 链表中环的入口节点
-
栈和队列
- 用两个栈来实现一个队列
- 栈的压入、弹出序列
-
树
- 重建二叉树
- 树的子结构
- 树的镜像
- 从上往下打印二叉树
- 二叉搜索树的后序序列
- 二叉树中和为某一值的路径
- 二叉搜索树与双向链表
- 二叉树的深度
- 平衡二叉树
- 二叉树的下一个结点
- 对称的二叉树
- 按之字形顺序打印二叉树
- 把二叉树打印成多行
- 序列化二叉树
- 二叉搜索树的第k个结点
C语言
教程
Go语言
教程
PHP
新特性
最佳实践
- PHP最佳实践系列之标准
- PHP最佳实践之过滤、验证、转义和密码
- PHP最佳实践之日期、时间和时区
- PHP最佳实践之数据库
- PHP最佳实践之多字节字符串、字符编码
- PHP最佳实践之异常和错误
- PHP最佳实践之上线准备