​https://github.com/0voice/algorithm-structure​

🦈 数据结构和算法

〽 线性结构

分享:github的算法项目_推荐算法

​数组行优先顺序​
​数组列优先顺序​
​广义表​
​单向链表:初始化,添加,长度,判空,清空,获取结点,插入结点,删除结点​
​双向链表:初始化,获得头结点,获得尾结点, 插入结点,删除结点​
​循环链表​
​静态栈:初始化,进栈,出栈​
​动态栈:初始化,进栈,出栈​
​顺序队列​
​循环队列​
​链式队列​


🌴 树形结构

分享:github的算法项目_结点_02

​二叉树:创建二叉树,插入树结点,前序遍历,中序遍历,后续遍历,二叉树深度,叶结点个数​
​平衡二叉树(AVL树)​
​二叉查找树(BST)​
​完全二叉树​
​伸展树​
​LSM 树​
​哈夫曼树​
​2-3-4树​
​红黑树:左旋,右旋,添加结点,删除结点,后继结点,查找​
​B树​
​B+树:创建b+树,插入结点,删除结点,合并结点,分裂结点,查询,遍历​
​B*树​
​决策树​
​并查集​


❄ 堆

分享:github的算法项目_结点_03

​二叉堆​
​左倾堆​
​斜堆​
​二项堆​
​斐波那契堆​


📊 图

分享:github的算法项目_推荐算法_04

​有向图​
​无向图​
​无权图​
​带权图​
​完全图​
​深度优先搜索​
​广度优先搜索​
​迭代加深搜索(ID搜索)​
​约束满足搜索​
​爬山算法​
​模拟退火算法​


⚜ 排序算法

分享:github的算法项目_推荐算法_05

算法复杂度

排序算法

平均情况

最好情况

最坏情况

空间复杂度

稳定与否

冒泡排序

O(n2)

O(n2)

O(n2)

1

稳定

选择排序

O(n2)

O(n2)

O(n2)

1

不稳定

插入排序

O(n2)

O(n)

O(n)

1

稳定

希尔排序

O(nlogn)

依赖增量序列

依赖增量序列

1

不稳定

快速排列

O(nlogn)

O(nlogn)

O(n2)

O(logn)

不稳定

归并排序

O(nlogn)

O(nlogn)

O(nlogn)

O(n)

稳定

二叉树排序

O(nlogn)

O(nlogn)

O(n2)

O(n)

稳定

计数排序

O(n+k)

O(n+k)

O(n+k)

O(n+k)

稳定

桶排序

O(n+k)

O(n2)

O(n)

O(n+k)

稳定

堆排序

O(nlogn)

O(nlogn)

O(nlogn)

1

不稳定

拓扑排序

O(N+E)

-

-

O(n)

-

算法动图演示

算法动图演示请看 ​​📃 附录1​

​冒泡排序​
​插入排序​
​希尔排序​
​选择排序​
​堆排序​
​归并排序​
​桶排序​
​基数排序​
​二叉树排序​
​计数排序​
​快速排序1​
​快速排序2​
​快速排序3​
​拓扑排序​


💫 查找算法

分享:github的算法项目_结点_06

​线性查找​
​顺序查找​
​二分查找​
​插值查找​
​斐波那契查找​
​树表查找​
​分块查找​
​哈希查找​


⭕ 搜寻算法

分享:github的算法项目_结点_07

​二分搜寻法​
​循序搜寻法​
​插补搜寻法​
​费氏搜寻法​


🔱 推荐算法

分享:github的算法项目_系统源码_08

​协同过滤推荐算法​
​基于内容的推荐算法​
​混合推荐算法​
​流行度推荐算法​


❇ 矩阵

分享:github的算法项目_系统源码_09

​对称矩阵​
​对角矩阵​
​稀疏矩阵​
​邻接矩阵​
​稠密矩阵​
​三角矩阵​
​多维矩阵转一维矩阵​
​矩阵连乘 动态规划迭代实现​
​矩阵连乘 备忘录递归实现​


➰ 项目中常用算法

分享:github的算法项目_系统源码_10

​产生可能的集合​
​后序式​
​格雷码​
​完美数​
​得分排行​
​数字拆解​
​筛选求质数​
​阿姆斯壮数​
​重叠子问题的递归最优解​
​长PI​
​大数运算​
​最大m子段问题​
​最大子段和问题的简单算法​
​最大访客数​
​最长公共子序列问题​
​最小生成树​
​最短路径算法​


➿ 大厂必会算法

分享:github的算法项目_系统源码_11

​排列组合​
​乱数排列​
​费列数列​
​布隆过滤器​
​RSA加密算法​
​回溯算法​
​递归算法​
​分治算法​
​贪心算法​
​KMP算法​
​剪枝算法​
​滑动窗口算法​
​朴素贝叶斯算法​
​动态规划算法​



🎡 C++项目

💧 经典算法

分享:github的算法项目_推荐算法_12

​背包问题​
​河内之塔​
​生命游戏​
​八枚银币​
​八皇后​
​三色棋​
​骑士走棋盘​
​老鼠走迷宫1​
​老鼠走迷宫2​
​魔方阵1​
​魔方阵2​
​魔方阵3​


💤 实战项目

​实现太阳系行星系统​
​实现运动目标的追踪​
​实现银行排队服务模拟​
​1小时入门增强现实技术​
​代码实现线程池​
​开发 Web 服务框架​
​打造 Markdown 解析器​
​实现高性能内存池​
​实现简易 Docker 容器​
​实现内存泄露检查器​
​使用 Crypto++ 库实现常用的加密算法​
​实现高性能 RTTI 库​
​操作 redis 实现异步订阅和发布​
​实现基数树 radix tree​
​基于OpenCV实现实时监控和运动检测记录​


🏮 经典项目

​递归解决分鱼问题​
​递归解决年龄问题​
​马踏棋盘​
​在字符串的指定位置插入字符​
​删除星号​
​魔方阵​
​矩阵转置​
​农夫过河​
​平分7筐鱼​
​邮票组合​
​选美比赛​
​掷骰子游戏​
​狼追兔子问题​
​24点问题​
​常胜将军问题​
​自动发牌程序​
​黑白子交换​
​“抢30”游戏​
​搬山游戏​
​人机猜数问题​
​谜语博士的难题​
​黑与白问题​
​谁是窃贼问题​
​旅客国籍问题​
​委派任务问题​
​谁在说谎问题​
​新良和新娘问题​
​谁家孩子跑的最慢问题​
​求梅森素数​
​求孪生素数​
​求回文素数​
​要发就发(1898)问题​
​验证哥德巴赫猜想​
​求给定范围内的所有素数​
​计算分数的精确值​
​求多项式之和​
​比较两个分数的大小​
​将真分数分解为埃及分数​
​求最小公倍数​
​歌星大奖赛​
​列出真分数序列​
​求最大公约数​
​求不重复的3位数​
​求勾股数​
​求黑洞数​
​求高次方数的尾数​
​求回文数​
​水仙花数​
​求自守数​
​求亲密数​
​求完数​
​换分币问题​
​马克思手稿中的数学题​
​舍罕王的失算​
​猜牌术​
​爱因斯坦的数学题​
​求车速​
​出售金鱼问题​
​三色球问题​
​分糖果问题​
​数制转换​
​存钱问题​
​个人所得税问题​
​最佳存款方案​
​牛顿失代法求方程根​
​兔子产子问题​
​抓交通肇事犯问题​
​打鱼还是晒网问题​
​借书方案知多少​
​百钱百鸡问题​
​动态数组的实现​
​实现的猜拳游戏(剪子锤子布)​
​定时关机程序​
​统计文件中的字符数、单词数以及总行数​
​统计输入的字符串的长度​
​输出菱形​
​统计英文字母、空格、数字和其它字符的数目​
​将一个正整数分解质因数​
​统计文件中单词的个数​
​向文件写入内容并读取显示​
​判断一个数是否是素数​
​输出2的N次幂​
​猴子吃桃问题​
​求某一年的某一月有多少天问题​
​求nt的值(3种方法)​
​删除字符数组中特定的字符​
​判断回文字符串​
​打印杨辉三角​
​数组旋转问题​
​新娘和新郎问题​
​兔子生兔子的问题​
​获取开机时间​
​分别用递归法和迭代法求阶乘​
​奶牛生子的问题​
​计算用1分钱、2分钱、5分钱组成1元钱的方式​
​将字符串转换为整数​
​计算厄密多项式​
​计算一个数的平方根​
​实现动态数组,克服静态数组大小固定的缺陷​
​实现文本搜索,类似软件中常用的搜索功能​
​动态分配数组大小​
​定时关机小程序​
​文本文件复制代码​
​线性同余法产生随机数​
​计算你收藏的硬币值多少钱​
​找到一个数的所有真因子​


​UDP传输系统源码​
​万年历源码​
​五子棋源码​
​做的一个任务管理器​
​做的播放器源码​
​做的绘图板系统​
​别踩白块儿(双人版)源码​
​力学相关的流体源码​
​华容道源码​
​吃逗游戏源码​
​商品销售系统源码​
​图书借阅系统源码​
​图书管理系统源码​
​地空对战游戏​
​坑爹大冒险​
​坦克游戏源代码​
​大丰收游戏源码​
​奔跑的火柴人游戏源码​
​学生信息系统​
​学生成绩管理系统​
​学生成绩管理系统源码​
​实现图片转化为 ASCII 图​
​实现如果cmd中的ping​
​实现数字雨​
​实现水波纹显示效果​
​实现的汉诺塔演示程序​
​实现的象棋源码​
​实现的超级玛丽游戏源码​
​实现类似弹力球效果​
​实现非常漂亮祝福烟花效果​
​对对碰游戏源码​
​对自己电脑系统测试​
​情人节的红玫瑰​
​打字母游戏源码​
​打字游戏代码​
​扔香蕉的大猩猩​
​拼图游戏源码​
​支持自己创建迷宫,并求解最短路径​
​教工工资管理系统​
​文本编辑器系统源码​
​涂格子游戏源码​
​火车票订票管理源码​
​电子时钟程序​
​盒子接球游戏源码​
​矿井逃生​
​种地要浇水游戏源码​
​自创军旗游戏源码​
​自创推箱子游戏改版​
​贪吃蛇游戏的双人对战版​
​超市管理系统​
​连连看游戏源码​
​通讯录管理系统源码​
​配有图片和音乐的打字母游戏​
​青蛙过河小游戏​
​黑白棋ai游戏源码​
​迷宫源码​


🧲 经典游戏

​MiGo开源掌机​
​2048游戏​
​21点游戏​
​game-of-life​
​snake_game​
​中国象棋​
​五子棋​
​井字棋​
​俄罗斯方块​
​弹弹乐​
​弹球游戏​
​成语接龙​
​打砖块游戏​
​打飞机游戏​
​扫雷游戏​
​推箱子​
​文字冒险游戏​
​猜拳游戏​
​猜数游戏​
​皇帝和后宫​
​老虎机游戏​
​记忆游戏​
​贪吃蛇(穿墙)​
​贪吃蛇​


💿 视频讲解游戏

​火柴人试炼之地​
​雷霆战机​
​奇怪大冒险​
​气球塔防​
​太空大战​

冒泡排序​

分享:github的算法项目_结点_13

​插入排序​

分享:github的算法项目_结点_14

​希尔排序​

分享:github的算法项目_结点_15

​选择排序​

分享:github的算法项目_系统源码_16

​堆排序​

分享:github的算法项目_系统源码_17

​归并排序​

分享:github的算法项目_系统源码_18

​桶排序​

分享:github的算法项目_推荐算法_19

​基数排序​

分享:github的算法项目_结点_20

​计数排序​

分享:github的算法项目_推荐算法_21

​快速排序​

​​

​拓扑排序​

拓扑排序步骤:

  1. 删除1或2输出 ​

    分享:github的算法项目_系统源码_22

  2. 删除2或3以及对应边 ​

    分享:github的算法项目_系统源码_23

  3. 删除3或者4以及对应边 ​

    分享:github的算法项目_结点_24

  4. 重复以上规则步骤 ​

    分享:github的算法项目_推荐算法_25



​​​​​​