# code-segment
聚集一些平时写的或搜集的一些有用的或有意思的代码片段.
#### 安装
- PHP安装
- composer.json文件的require中添加 "2lovecode/code-segment" : "dev-master"
- 执行composer update
- Php文件夹中的部分类您可以在自己的项目中通过自动加载使用,其它语言片段文件仅供查看参考.
- 暂不支持其它语言包管理器的安装,您可以直接git clone git@github.com:2lovecode/code-segment.git 直接下载.
- Go语言(Go) **<font color=red>已迁移至 [graffito](https://github.com/2lovecode/graffito)</font>**
- C语言(C) **<font color=red>已迁移至 [graffito-c](https://github.com/2lovecode/graffito-c)</font>**
#### 目录:
- [x] [Php](Php):
- [x] [AttributesChangeLog](Php/AttributesChangeLog):记录参数的一个类,该类实例化的对象可以持有一个参数池,所有出现在这个参数池中的参数都可以跟踪其值的变化.
- [x] [BloomFilter](Php/BloomFilter):布隆过滤器
- [x] [Container](Php/Container):依赖注入容器(DI)的实现(copy from laravel)
- [x] [DataStructureAndAlgorithm](Php/DataStructureAndAlgorithm):数据结构和算法
- [x] [BPlusTree](Php/DataStructureAndAlgorithm/BPlusTree) : B+树
- [x] [BTree](Php/DataStructureAndAlgorithm/BTree) : B树
- [x] [Hash](Php/DataStructureAndAlgorithm/Hash) : Hash表实现
- [x] [Heap](Php/DataStructureAndAlgorithm/Heap) : 堆实现
- [x] [MaxHeap](Php/DataStructureAndAlgorithm/Heap/MaxHeap.php) : 最大堆
- [x] [MinHeap](Php/DataStructureAndAlgorithm/Heap/MinHeap.php) : 最小堆
- [x] [PageRank](Php/DataStructureAndAlgorithm/PageRank) : 网页排名-简单PageRank实现
- [x] [RedBlackTree](Php/DataStructureAndAlgorithm/RedBlackTree) : 红黑树实现
- [x] [RedBlackTree](Php/DataStructureAndAlgorithm/RedBlackTree/RedBlackTree.php) : 红黑树实现
- [x] [SkipList](Php/DataStructureAndAlgorithm/SkipList) : 跳跃表实现
- [x] [SkipList](Php/DataStructureAndAlgorithm/SkipList/SkipList.php) : 跳跃表实现
- [x] [Sort](Php/DataStructureAndAlgorithm/Sort) : 排序算法
- [x] [CompareSort](Php/DataStructureAndAlgorithm/Sort/CompareSort) : 比较类排序
- [x] [InsertSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/InsertSort) : 插入类排序
- [x] [InsertSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/InsertSort/InsertSort.php) : 插入排序
- [x] [ShellSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/InsertSort/ShellSort.php) : 希尔排序
- [x] [MergeSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/MergeSort) : 归并类排序
- [x] [MergeSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/MergeSort/MergeSort.php) : 归并排序
- [x] [SelectSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/SelectSort) : 选择类排序
- [x] [HeapSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/SelectSort/HeapSort.php) : 堆排序
- [x] [SimpleSelectSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/SelectSort/SimpleSelectSort.php) : 简单选择排序
- [x] [SwapSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/SwapSort) : 交换类排序
- [x] [BubbleSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/SwapSort/BubbleSort.php) : 冒泡排序
- [x] [QuickSort](Php/DataStructureAndAlgorithm/Sort/CompareSort/SwapSort/QuickSort.php) : 快速排序
- [x] [NoCompareSort](Php/DataStructureAndAlgorithm/Sort/NoCompareSort) : 非比较类排序
- [x] [BucketSort](Php/DataStructureAndAlgorithm/Sort/NoCompareSort/BucketSort.php) : 桶排序
- [x] [CountSort](Php/DataStructureAndAlgorithm/Sort/NoCompareSort/CountSort.php) : 计数排序
- [x] [RadixSort](Php/DataStructureAndAlgorithm/Sort/NoCompareSort/RadixSort.php) : 基数排序
- [x] [DesignPatterns](Php/DesignPatterns):一些设计模式的示例
- [x] [Adapter](Php/DesignPatterns/Adapter) : 适配器模式
- [x] [Command](Php/DesignPatterns/Command) : 命令模式
- [x] [Composite](Php/DesignPatterns/Composite) : 组合模式
- [x] [Decorator](Php/DesignPatterns/Decorator) : 装饰者模式
- [x] [Facade](Php/DesignPatterns/Facade) : 门面模式
- [x] [Factory](Php/DesignPatterns/Factory) : 工厂模式
- [x] [Iterator](Php/DesignPatterns/Iterator) : 迭代器模式
- [x] [Observer](Php/DesignPatterns/Observer) : 观察者模式
- [x] [Pipeline](Php/DesignPatterns/Pipeline) : 管道模式
- [x] [Proxy](Php/DesignPatterns/Proxy) : 代理模式
- [x] [Singleton](Php/DesignPatterns/Singleton) : 单例模式
- [x] [State](Php/DesignPatterns/State) : 状态模式
- [x] [Strategy](Php/DesignPatterns/Strategy) : 策略模式
- [x] [TemplateMethod](Php/DesignPatterns/TemplateMethod) : 模板方法模式
- [x] [FileOperation](Php/FileOperation):php操作目录和文件的一些示例
- [x] [DirTranverse](Php/FileOperation/DirTranverse) : 非递归方式实现目录数量统计
- [x] [ExcelColIncrease](Php/FileOperation/ExcelColIncrease) : excel列标识自增方法
- [x] [GenerateBigFile](Php/FileOperation/GenerateBigFile) : 大文件生成
- [x] [FilterSensitiveWord](Php/FilterSensitiveWord):敏感词过滤实现
- [x] [FilterSensitiveWord](Php/FilterSensitiveWord/FilterSensitiveWord.php) : 简单的基于DFA算法的敏感词过滤第一版 [博客地址](https://blog.csdn.net/aikiller/article/details/78797864)
- [x] [FilterSensitiveWord_2](Php/FilterSensitiveWord/FilterSensitiveWord_2.php) : 简单的基于DFA算法的敏感词过滤第二版 [博客地址](https://blog.csdn.net/AIkiller/article/details/80287594)
- [x] [HyperLogLog](Php/HyperLogLog) : 模拟redis的HyperLogLog数据结构
- [ ] [InterestingQuestion](Php/InterestingQuestion) : 一些有趣的需要使用数据结构和算法解决的问题[NEW][UNITTEST]
- [ ] [Stack](Php/InterestingQuestion/Stack) : 栈相关
- [x] [StackWithGetMin](Php/InterestingQuestion/Stack/StackWithGetMin) : 可以以O(1)获取最小值的栈实现
- [x] [LaravelTest](Php/LaravelTest) : 依据Laravel框架中一些机制的实现原理,写的一些实现demo
- [x] [MiddleWare](/Php/LaravelTest/MiddleWare) : 依据MiddleWare的实现原理,实现的一个简单demo
- [x] [PhpSyntaxTestCode](Php/PhpSyntaxTestCode):一些php的语法的测试示例
- [x] [TestData](Php/PhpSyntaxTestCode/TestData) : 测试数据
- [x] [ThrowableTest](Php/PhpSyntaxTestCode/ThrowableTest) : Throwable类测试
- [x] [ArrayReduce](Php/PhpSyntaxTestCode/ArrayReduce.php) : array_reduce函数测试
- [x] [CloneSyntax](Php/PhpSyntaxTestCode/CloneSyntax.php) : clone语法测试
- [x] [FileOperation](Php/PhpSyntaxTestCode/FileOperation.php) : 文件操作测试
- [x] [GetFileLastNumRow](Php/PhpSyntaxTestCode/GetFileLastNumRow.php) : 或取文件最后一行代码测试
- [x] [SimpleContainer](Php/SimpleContainer):DI容器简单实现
- [x] [SimpleDataBase](Php/SimpleDataBase):php实现的一个简单的key-value数据库
- [x] [SimpleRandom](Php/SimpleRandom) : 简单的页面随机抽取实现
- [ ] [Tests](Php/Tests) : 单元测试代码
- [x] [TransformDataPieces](Php/TransformDataPieces):将crontab的配置,例如: * * * * *,分解为散列的时间片段,实现定时功能
- [x] [UrlShortener](Php/UrlShortener) : url短链接生成策略
- [x] [AutoIncreaseShortener](Php/UrlShortener/AutoIncreaseShortener.php) : 自增序列法
- [x] [Md5Shortener](Php/UrlShortener/Md5Shortener.php) : 摘要法
- [x] [UsefulTools](Php/UsefulTools):一些有趣的工具
- [x] [Awk](Awk) : awk语言
- [x] [Calendar](Awk/Calendar) : 日历实现
- [x] [InterActiveStrReplace](Awk/Inter