算法

  • 最近更新时间 :2020年12月07日

主题:

分析的算法

  1. 渐近分析
  2. 最糟糕,平均和最佳情况
  3. 渐近符号
  4. 小o和小ω符号
  5. 下界和上界理论
  6. 分析循环
  7. 解决复发
  8. 平摊分析
  9. “空间复杂性”是什么意思?
  10. Pseudo-polynomial算法
  11. NP完整性介绍
  12. 多项式时间近似方案
  13. 时间复杂性问题
  14. 建立堆的时间复杂性
  15. 循环变量增加1、2、3、4 ..
  16. 循环与力量的时间复杂性
  17. 循环的性能(缓存问题)

关于算法分析的最新文章
算法分析小测验
测试在复发

搜索和排序



  1. 线性搜索二分查找跳转搜索插值搜索指数搜索三元搜索
  2. 选择排序泡沫排序插入排序归并排序堆积快速排序Radix Sort.计数排序桶排序ShellSort梳子排序分类排序周期排序
  3. 插值搜索vs二分搜索
  4. 排序算法中的稳定性
  5. 快速排序的最坏情况何时发生?
  6. 基于比较的排序算法的下界
  7. 哪种分类算法使最小数量的内存写入?
  8. 找到最小长度的未排序子数组,排序使整个数组排序
  9. 对链表进行归并排序
  10. 对几乎排序(或k分类)数组进行排序
  11. 迭代的快速排序
  12. Quicksort上单独的名单
  13. Quickssort在双重链接列表上
  14. 找到最接近的元素到给定值
  15. 在线性时排序为0到N ^ 2 - 1的范围内的数字
  16. 许多二进制搜索实现中的问题
  17. 在几乎排序的数组中搜索
  18. 以波形对数组进行排序
  19. 为什么二分搜索优于三元搜索?
  20. 未排序数组中第K个最小/最大的元素
  21. 在预期线性时间内,未排序数组中第K个最小/最大的元素
  22. 在最坏情况下,未排序阵列中的k'th最小/最大元素
  23. 从两个排序阵列中找到最接近的对
  24. 在三个排序阵列中查找常见元素
  25. 给定一个已排序的数组和一个数字x,找出数组中和最接近x的一对
  26. 计数1中的分类二进制数组
  27. 二进制插入排序
  28. 插入单独链接列表
  29. 为什么快速排序优先于数组和归并排序链表?
  30. 双链表的归并排序
  31. 最小互相旋转,以移动最大和最小的角落

最近关于搜索的文章
关于排序的最新文章
搜索测验
测试在排序
编码练习搜索
分拣编码实践

贪心算法

  1. 活动的选择问题
  2. Kruskal最小生成树算法
  3. 霍夫曼编码
  4. 高效的霍夫曼编码排序输入
  5. 普里姆最小生成树算法
  6. Prim的邻接列表表示的MST
  7. Dijkstra的最短路径算法
  8. 邻接表表示的Dijkstra算法
  9. 作业排序问题
  10. 贪婪算法测验
  11. 贪心算法求最小硬币数
  12. K中心问题
  13. 铁路/公交车站所需的最小平台数

最近关于贪婪算法的文章
贪婪算法测验
贪心算法的编码实践

动态规划

  1. 重叠的子问题属性
  2. 最优子结构性质
  3. 最长上升子序列
  4. 最长公共子序列
  5. 编辑距离
  6. 最小成本路径
  7. 硬币改变
  8. 矩阵链乘法
  9. 二重传系数
  10. 0 - 1背包问题
  11. 鸡蛋掉落的拼图
  12. 最长的回文后赛
  13. 减少一个杆
  14. 最大总和增加子序列
  15. 最长双调的子序列
  16. Floyd Warshall算法
  17. parindrome分区
  18. 分区的问题
  19. 自动换行问题
  20. 对链的最大长度
  21. 变化的LIS
  22. 盒子堆积问题
  23. 斐波纳契编号
  24. 到达终点的最小跳跃数
  25. 所有1S的最大大小平方子矩阵
  26. 丑陋的数字
  27. 最大和相邻子数组
  28. 最长的回文基字符串
  29. 最短路径的Bellman-Ford算法
  30. 最优二叉搜索树
  31. 最大的独立组问题
  32. 子集合问题
  33. 2D矩阵中的最大矩形矩形
  34. 不连续为1的二进制字符串的个数?年代
  35. 布尔Parenthesization问题
  36. 计算达到第n楼梯的方法
  37. 最小代价多边形三角剖分
  38. 移动数字键盘问题
  39. 数位数的数字数量,其数字总和等于给定和
  40. 到达目的地的最小起始点
  41. n位非递减数的总数
  42. 找出从给定的起始字符开始的最长连续路径的长度
  43. 铺瓷砖问题
  44. 其和等于给定数字n的最小平方数
  45. 找到制作给定值的最小硬币数量
  46. 使用两次遍历收集网格中的最大点
  47. 最短的常见超额公顷
  48. 计算从1到n的所有数字的和
  49. 计算建筑物的可能方法
  50. 最多两次购买和销售份额的最大利润
  51. 如何使用给定的四个键打印最大A的A.
  52. 找到使用火车到达目的地的最低成本
  53. 顶点覆盖问题|集2(树的动态规划解)
  54. 计算在游戏中达到一个给定分数的方法的数量
  55. 加权工作安排
  56. 最长偶数长度的子串,使前半段和后半段之和相等

关于动态规划的最新文章
测验动态编程
动态编程的编码实践



模式搜索:

  1. 天真的模式搜索
  2. KMP算法
  3. Rabin-Karp算法
  4. 一个简单的模式搜索问题
  5. 有限自动机
  6. 有限自动机的有效构造
  7. Boyer Moore算法-坏字符启发式
  8. 后缀数组
  9. 字谜子字符串搜索(或搜索所有排列)
  10. 使用所有后缀的尝试进行模式搜索
  11. AHO-Corasick算法模式搜索
  12. Kasai从后缀数组构建LCP数组算法
  13. Z算法(线性时间模式搜索算法)
  14. 愿望妇女节

关于模式搜索的最新文章

其他字符串算法:

  1. Manacher算法-线性时间最长回文子串-第1部分第2部分第3部分第4部分
  2. 最长偶数长度的子串,使前半段和后半段之和相等
  3. 打印所有可以通过放置空格生成的字符串

最近关于字符串的文章
串编码练习

回溯

  1. 打印给定字符串的所有排列
  2. 骑士的旅行问题
  3. 迷宫里的老鼠
  4. n女王问题
  5. 子集合
  6. m着色问题
  7. 哈密​​顿周期
  8. 数独
  9. 拔河比赛
  10. 解决Cryptarithmetic谜题

最近的回溯文章
回溯的编码实践

划分和征服

  1. 介绍
  2. 写出你自己的pow(x, n)来计算x*n
  3. 两个排序阵列的中位数
  4. 计算反演
  5. 最近的一对积分
  6. Strassen矩阵乘法
  7. 快速排序vs归并排序

最近关于分而治之的文章
贬低分裂和征服
分裂和征服编码实践

几何算法:

  1. 最近的一对积分|o(nlogn)实施
  2. 如何检查两个给定的线段是否相交?
  3. 如何检查给定点是否位于多边形内部或外部
  4. 凸包|集1 (Jarvis算法或包装)
  5. 凸包|集2 (Graham扫描)
  6. 给定N行段,找到是否有两个段相交
  7. 检查给定点是否位于三角形内部
  8. 如何检查是否给出了四个点形成一个正方形

关于几何算法的最新文章
几何算法的编码练习

数学算法:

  1. 写一个有效的方法来检查一个数是否为3的倍数
  2. 有效的方式来乘以7
  3. 编写一个C程序打印给定字符串的所有排列
  4. 幸运数字
  5. 写一个程序,使两个数以14为基数相加
  6. 平方根的巴比伦方法
  7. 乘以两个整数而不使用乘法,划分和位运算符,而且没有循环
  8. 打印可以构成给定数量的所有点组合
  9. 无需使用乘法(*)和除法(/)运算符就可以编写自己的运算能力
  10. 斐波纳契编号
  11. 一串数字的平均值
  12. 计算不包含3的数字
  13. MagicSquare
  14. 埃拉托斯特尼筛法
  15. 在m到n的范围内具有最大纯度因子数的数字
  16. 查找特定日期的一周
  17. 基于DFA的部门
  18. 以相同的概率生成1到7的整数
  19. 给定一个数字,找出下一个最小的回文
  20. 从偏见的硬币制作一个公平的硬币
  21. 检查是否能被7整除
  22. 找到3的最大倍数
  23. 词典秩的字符串
  24. 打印排序(词典)顺序的所有排列
  25. 播放给定的阵列
  26. 空间和时间有效二项式系数
  27. 水库采样
  28. 帕斯卡三角形
  29. 从流中选择随机数,使用O(1)空间
  30. 找到2,3和5的最大倍数
  31. 高效的程序来计算e ^ x
  32. 使用两个血管和无限供水量测量一升
  33. 打印给定数字的所有质因数的有效程序
  34. 在给定的大小阵列中打印R元素的所有可能组合
  35. 任意概率分布方式随机数发生器
  36. 如何检查一个给定的数字是否是斐波那契数?
  37. 俄罗斯农民乘法
  38. 计算所有可能的大小2或3组,其总和为3
  39. 河内塔
  40. 多项式求值的霍纳法
  41. 计数拖尾零的数量
  42. 第n个加泰罗尼亚号码的程序
  43. 根据给定的概率生成3个数字中的一个
  44. 从给定列号查找Excel列名称
  45. 使用相同的数字集查找下一个更大的数字
  46. 计算给定数字序列的可能解码
  47. 计算时针和分针之间的夹角
  48. 不连续为1的二进制字符串的个数?年代
  49. 找出与给定数n相乘的最小数
  50. 画一个没有浮点运算的圆
  51. 如何检查8个谜题的一个实例是可解决的?
  52. 生日悖论
  53. 乘以两个多项式
  54. 计算满足不等式x*x + y*y < n的不同的非负整数对(x, y)
  55. 计算达到第n楼梯的方法
  56. 用输入整数中的“5”替换所有'0'
  57. 程序将两个多项式相加
  58. 打印1 / n的第一k位,其中n是正整数
  59. 给定一个数字作为字符串,找到递归增加9的连续子句的数量
  60. 分离方法计划
  61. 虚假位置方法的程序
  62. 牛顿Raphson方法计划

关于数学算法的最新文章
数学算法编码实践

比特算法:

  1. 找到出现一次的元素
  2. 检测相反的标志
  3. 设置从1到n的所有数字中的位
  4. 交换位
  5. 添加两个数字
  6. 最小的三个
  7. 布尔阵列拼图
  8. 在(大)阵列中设置位
  9. 下一个更高的数字,具有相同数量的设置位
  10. 优化技术(模量)
  11. 添加1到数字
  12. 乘以3.5
  13. 关闭最右边的设置位
  14. 检查4的力量
  15. 没有分支的绝对值(abs)
  16. 模数除以2的幂数
  17. 两个整数的最小或最多
  18. 旋转位
  19. 在数组中找到两个非重复元素
  20. 号码发生奇数
  21. 检查整数溢出
  22. 小端和大端
  23. 一个数的反转位
  24. 计算整数中的设置位
  25. 将A转换成B所要翻转的位数
  26. 下一个功率2
  27. 检查一个数是否为3的倍数
  28. 找到奇偶校验
  29. 乘以7
  30. 求一个“不”是否等于2的幂
  31. 最右边设置位的位置
  32. 给定数量的二进制表示
  33. 交换所有奇数位和偶数位
  34. 找到唯一设置位的位置
  35. 快速乘法的Karatsuba算法
  36. 如何在不使用临时变量的情况下交换两个数字?
  37. 使用按位运算符检查9号码是否为9的倍数
  38. 在一个字节中交换两个小啃
  39. 如何关闭数字中的特定位?
  40. 检查数字的二进制表示是否是palindrome

最近关于比特算法的文章
比特算法测验
比特算法编码实践

图算法:

介绍,DFS和BFS:

  1. 图表及其表示
  2. 宽度的第一个遍历图形
  3. 深度首先遍历图形
  4. 深度优先搜索的应用
  5. 检测定向图中的周期
  6. 检测一个无向图的图形
  7. 在无向图中检测周期
  8. 在一条定向的非循环图中的最长路径
  9. 拓扑排序
  10. 检查一个给定的图是否是二部图
  11. 蛇和梯子问题
  12. 均匀的组件
  13. 检查一个给定的图是否是树状的

最小生成树:

  1. Prim最小生成树(MST)
  2. 最小生成树问题的应用
  3. Prim的邻接列表表示的MST
  4. Kruskal最小生成树算法
  5. 最小生成树的Boruvka算法

最短路径:

  1. Dijkstra最短路径算法
  2. 邻接表表示的Dijkstra算法
  3. Bellman-Ford算法
  4. Floyd Warshall算法
  5. 约翰逊的全对最短路径的算法
  6. 有向无环图中的最短路径
  7. 一些有趣的最短路径问题
  8. 在定向和加权图形中的k边的最短路径

连接:

  1. 查找有向图中两个顶点之间是否有路径
  2. 有向图中的连通性
  3. 铰接点(或剪切顶点)在图中
  4. 双联接图形
  5. 图中的桥
  6. 欧拉道路和电路
  7. 弗勒里打印欧拉路径或电路的算法
  8. 强连接的组件
  9. 图表的传递关闭
  10. 找到岛屿的数量
  11. 计算所有可能从源散到目的地,恰好k边缘
  12. 有向图中的欧拉电路
  13. 均匀的组件
  14. 寻找强连接分量的Tarjan算法

困难的问题:

  1. 图形着色(简介和应用程序)
  2. 图形着色的贪婪算法
  3. 旅行推销员问题(天真和动态编程)
  4. 旅行推销员问题(使用MST近似)
  5. 哈密​​顿周期
  6. 顶点封面问题(介绍和近似算法)
  7. K中心问题(贪婪近似算法)

最大流量:

  1. 福特-Fulkerson算法用于最大流量问题
  2. 求两个顶点之间边不相交路径的最大数目
  3. 查找流量网络中的最小S-T
  4. 最大两分匹配
  5. 频道分配问题

MISC:

  1. 看看这些绳子能不能用链条串成一个圆圈
  2. 给定一个已排序的外来语言字典,找出字符的顺序
  3. 最小割值的卡格算法
  4. Karger的最小剪切算法|设置2(分析和应用程序)
  5. 最大匹配|集1的Hopcroft-Karp算法(介绍)
  6. HOPCROFT-KARP算法,用于最大匹配|设置2(实施)
  7. 达到目标字的最短链的长度
  8. 在联系人列表中查找相同的联系人

所有算法在图上
测试在图
图遍历测验
图最短路径测验
在图中测验最小生成树
编码图表

随机算法:

  1. 期望的线性
  2. 预期的试验次数直到成功
  3. 随机算法|设置0(数学背景)
  4. 随机算法|设置1(介绍和分析)
  5. 随机算法|设置2(分类和应用程序)
  6. 随机化算法|集3(1/2近似中位数)
  7. 最小割值的卡格算法
  8. 未排序阵列中的k'th最小/最大元素|设置2(预期的线性时间)
  9. 水库采样
  10. 播放给定的阵列
  11. 从单链接列表中选择一个随机节点

关于随机算法的最新文章

分支界限法

  1. 分支和绑定|设置1(用0/1背包简介)
  2. 分支和绑定|集合2(实现0/1背包)
  3. 分支定界|集合3(8个难题)
  4. 分支和绑定|设置4(作业分配问题)
  5. 分支定界|集合5 (N皇后问题)
  6. 分支和绑定|套6(旅行推销员问题)

分支机构最近的文章

测试算法:

  1. 分析的算法
  2. 排序
  3. 划分和征服
  4. 贪心算法
  5. 动态规划
  6. 回溯
  7. Misc
  8. NP完成
  9. 搜索
  10. 算法分析(复发)
  11. 递归
  12. 比特算法
  13. 图形遍历
  14. 图形最短路径
  15. 图最小生成树

MISC:

  1. 常见问题算法面试问题|集1
  2. 给定一个O和X的矩阵,求被X包围的最大子方阵
  3. 坚果&螺栓问题(锁和关键问题)
  4. 洪水填充算法 - 如何在油漆中实现填充()?
  5. 给定n约会,查找所有冲突的约会
  6. 检查一个给定的句子是否有一组简单的语法规则
  7. 找到0索引要替换为1以在二进制数组中获得最长的连续序列1S
  8. 如何检查两个给定的集是否脱节?
  9. 铁路/公交车站所需的最小平台数
  10. 具有连续元素的最大子数组|的长度
  11. 具有连续元素的最大子数组的长度|集合2
  12. 从第一个N自然数打印所有增加的长度序列
  13. 给定两个字符串,找到第一个字符串是否是第二个字符串
  14. 蛇和梯子问题
  15. 写一个返回输入1的函数,返回1个返回2
  16. 用最低成本连接n绳索
  17. 查找给定长度的有效括号的数量
  18. 最长单调递增的子序列大小(N log N):简单实现
  19. 生成所有二进制排列,使所有排列中每个点上的1多于0
  20. 词典标记最小弦旋转
  21. 用它的对和数组构造一个数组
  22. 评估简单表达式的程序
  23. 检查给定字符串的字符是否可以重新排列以形成parindrome
  24. 在给定的字符串数组中打印所有的字母

请参阅数据结构和高级数据结构对于图形,二叉树,BST和链接基于列出的算法。

我们将很快添加更多类别和帖子。

您可以创建一个新的算法主题,并使用我们的门户与其他极客讨论它实践。见最近添加的问题实践中的算法

我的个人笔记 arrow_drop_up