算法

  • 最后更新: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. 选择排序冒泡排序插入排序归并排序堆积快速排序基数排序计数排序桶排序ShellSort梳子排序分类排序循环排序
  3. 插值搜索与二分搜索
  4. 排序算法的稳定性
  5. 快速排序最坏的情况是什么时候?
  6. 基于比较的排序算法的下界
  7. 哪种排序算法使内存写的次数最少?
  8. 找到最小长度未排序子数组,排序使整个数组排序
  9. 合并排序链表
  10. 对接近排序(或K排序)的数组排序
  11. 迭代的快速排序
  12. 单链表快速排序
  13. Quickssort在双重链接列表上
  14. 求k个最接近给定值的元素
  15. 在线性时间内对范围从0到n^2 - 1的n个数进行排序
  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. 高效的Huffman编码排序输入
  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. 回文分区
  18. 分区的问题
  19. 自动换行问题
  20. 最大长度的链对
  21. 变化的LIS
  22. 盒子堆积问题
  23. 程序的斐波那契数
  24. 到达终点的最小跳跃次数
  25. 所有1S的最大大小平方子矩阵
  26. 丑陋的数字
  27. 最大和连续子数组
  28. 最长回文字符串
  29. 最短路径的Bellman-Ford算法
  30. 最优二叉搜索树
  31. 最大的独立组问题
  32. 子集合问题
  33. 2D矩阵中的最大矩形矩形
  34. Count没有连续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的最大数量使用给定的四个键
  52. 找到使用火车到达目的地的最低成本
  53. 顶点覆盖问题|集2(树的动态规划解)
  54. 计算在游戏中达到给定分数的方法的数量
  55. 加权作业调度
  56. 最长的偶数子串,使第一部分和第二部分的和相同

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



模式搜索:

  1. 天真的模式搜索
  2. 公里的算法
  3. - karp算法
  4. 一个朴素模式搜索问题
  5. 有限自动机
  6. 有限自动机的有效构造
  7. 波伊尔摩尔算法-坏字符启发式
  8. 后缀数组
  9. 字谜子串搜索(或搜索所有排列)
  10. 使用所有后缀的Trie进行模式搜索
  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. 编写自己的Power,不使用乘法(*)和除法(/)运算符
  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. 输出大小为n的给定数组中r个元素的所有可能组合
  35. 随机数字发生器在任意概率分布方式
  36. 如何检查一个给定的数字是否是斐波那契数?
  37. 俄罗斯农民乘法
  38. 计算所有可能的大小2或3组,其总和为3
  39. 河内塔
  40. 多项式求值的霍纳方法
  41. 计数拖尾零的数量
  42. 第n个加泰罗尼亚数字的程序
  43. 根据给定的概率产生3个数字中的一个
  44. 从给定的列号中查找Excel列名
  45. 使用相同的数字集查找下一个更大的数字
  46. 计算给定数字序列的可能解码
  47. 计算时针和分针之间的角度
  48. Count没有连续1的二进制字符串的数量?年代
  49. 求其位数与给定数n相乘的最小数
  50. 画一个没有浮点运算的圆
  51. 如何检查8个谜题的一个实例是否可以解决?
  52. 生日悖论
  53. 乘以两个多项式
  54. 数满足不等式x*x + y*y < n的不同非负整数对(x, y)
  55. 数一数到达第n级楼梯的方法
  56. 将输入整数中的所有' 0 '替换为' 5 '
  57. 程序添加两个多项式
  58. 打印1/n的前k个数字,其中n是一个正整数
  59. 给定一个数字作为字符串,找到递归增加9的连续子句的数量
  60. 分离方法计划
  61. 错误定位方法程序
  62. Newton 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. 找出no是否为2的幂
  31. 最右固定位的位置
  32. 给定数量的二进制表示
  33. 交换所有奇数位和偶数位
  34. 查找唯一设置位的位置
  35. 快速乘法的空手道算法
  36. 如何交换两个数字,而不使用临时变量?
  37. 使用按位运算符检查9号码是否为9的倍数
  38. 在一个字节中交换两次
  39. 如何关闭一个数字的特定位?
  40. 检查数字的二进制表示是否是palindrome

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

图算法:

介绍,DFS和BFS:

  1. 图及其表示
  2. 宽度优先对图进行遍历
  3. 深度优先遍历一个图
  4. 深度优先搜索的应用
  5. 有向图中的检测周期
  6. 检测无向图中的循环
  7. 检测无向图中的循环
  8. 在一条定向的非循环图中的最长路径
  9. 拓扑排序
  10. 检查一个给定图是否是二部图
  11. 蛇梯问题
  12. 双连通分量
  13. 检查给定的图是否是树

最小生成树:

  1. 普里姆最小生成树
  2. 最小生成树问题的应用
  3. Prim的MST用于邻接表表示
  4. Kruskal最小生成树算法
  5. 最小生成树的Boruvka算法

最短路径:

  1. Dijkstra最短路径算法
  2. 邻接表表示的Dijkstra算法
  3. bellman算法
  4. Floyd Warshall算法
  5. 全对最短路径的Johnson算法
  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. 随机化算法|
  4. 随机算法|设置1(介绍和分析)
  5. 随机算法|集2(分类和应用)
  6. 随机算法|集3(1/2近似中值)
  7. 最小割的卡格算法
  8. 无序数组|集合2中K个最小/最大元素(期望线性时间)
  9. 水库采样
  10. 打乱给定数组
  11. 从单链表中选择一个随机节点

关于随机算法的最新文章

分支界限法

  1. 分支和绑定|设置1(用0/1背包简介)
  2. 分支和绑定|集合2(0/1背包实现)
  3. 分支和边界|集合3(8题)
  4. 分支和绑定|设置4(作业分配问题)
  5. 分支和上界|集合5 (N Queen Problem)
  6. 分支和界|集合6(旅行商问题)

关于分支和绑定的最新文章

测试算法:

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

MISC:

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

请参阅数据结构和高级数据结构用于图,二叉树,BST和链表的算法。

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

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

我的个人笔记 arrow_drop_up