算法
主题:
- 渐近分析
- 最差、一般和最好的情况
- 渐近符号
- 小o和小ω符号
- 下界和上界理论
- 分析循环
- 解决复发
- 平摊分析
- “空间复杂性”是什么意思?
- Pseudo-polynomial算法
- np完全的介绍
- 多项式时间近似格式
- 时间复杂性问题
- 构建堆的时间复杂性
- 循环变量增加1、2、3、4 ..
- 带幂的循环的时间复杂度
- 循环的性能(缓存问题)
- 线性搜索,二分查找,跳转搜索,插值搜索,指数搜索,三元搜索
- 选择排序,冒泡排序,插入排序,归并排序,堆排序,快速排序,基数排序,计数排序,桶排序,ShellSort,梳子排序,分类排序,周期排序
- 插值搜索vs二分搜索
- 排序算法的稳定性
- 快速排序的最坏情况何时发生?
- 基于比较的排序算法的下界
- 哪一种排序算法的内存写操作最少?
- 找到最小长度的未排序子数组,排序使整个数组排序
- 对链表进行归并排序
- 对一个几乎排序(或K排序)的数组进行排序
- 迭代的快速排序
- 对单链表快速排序
- 对双链表进行快速排序
- 找出k个最接近给定值的元素
- 在线性时间内对从0到n²- 1范围内的n个数字排序
- 许多二进制搜索实现中的一个问题
- 在几乎排序的数组中搜索
- 以波形对数组进行排序
- 为什么二分搜索优于三元搜索?
- 未排序数组中第K个最小/最大的元素
- 在预期线性时间内,未排序数组中第K个最小/最大的元素
- 最坏情况下,无序数组中第K个最小/最大的元素线性时间
- 从两个已排序的数组中找到最接近的一对
- 在三个已排序的数组中查找公共元素
- 给定一个已排序的数组和一个数字x,找出数组中和最接近x的一对
- 计数1中的分类二进制数组
- 二分插入排序
- 插入单独链接列表
- 为什么快速排序优先于数组和归并排序链表?
- 双链表的归并排序
- 最小相邻交换,以移动最大和最小到角落
最近关于搜索的文章
关于排序的最新文章
测试在搜索
测试在排序
搜寻编码实务
分类编码实务
- 活动的选择问题
- Kruskal最小生成树算法
- 霍夫曼编码
- 高效的霍夫曼编码排序输入
- 普里姆最小生成树算法
- 邻接表表示的Prim的MST
- Dijkstra最短路径算法
- 邻接表表示的Dijkstra算法
- 作业排序问题
- 贪心算法小测验
- 贪心算法求最小硬币数
- K中心问题
- 铁路/巴士站所需最少月台数目
- 重叠子问题属性
- 最优子结构性质
- 最长上升子序列
- 最长公共子序列
- 编辑距离
- 最小成本路径
- 硬币改变
- 矩阵链乘法
- 二项式系数
- 0 - 1背包问题
- 鸡蛋掉难题
- 最长回文的子序列
- 减少一个杆
- 最大和递增子序列
- 最长双调的子序列
- 弗洛伊德沃肖尔算法
- parindrome分区
- 分区的问题
- 自动换行问题
- 对链的最大长度
- 变化的LIS
- 盒子堆积问题
- 斐波那契数列程序
- 到达终点的最小跳跃数
- 所有1的最大大小方子矩阵
- 丑陋的数字
- 最大和相邻子数组
- 最长的回文基字符串
- 最短路径的Bellman-Ford算法
- 最优二叉搜索树
- 最大独立集问题
- 子集和问题
- 二维矩阵中的最大和矩形
- 不连续为1的二进制字符串的个数?年代
- 布尔Parenthesization问题
- 计算达到第n楼梯的方法
- 最小代价多边形三角剖分
- 移动数字键盘问题
- n个数字的和等于给定和的数的计数
- 到达目的地的最小起始点
- n位非递减数的总数
- 找出从给定的起始字符开始的最长连续路径的长度
- 铺瓷砖问题
- 其和等于给定数字n的最小平方数
- 找到制作给定值的最小硬币数量
- 使用两次遍历收集网格中的最大点
- 最短的普通超层序
- 计算从1到n的所有数字的和
- 计算建筑物的可能方法
- 最多两次购买和销售份额的最大利润
- 如何使用给定的四个键打印最大A的A.
- 找出乘火车到达目的地的最低费用
- 顶点覆盖问题|集2(树的动态规划解)
- 计算在游戏中达到一个给定分数的方法的数量
- 加权作业调度
- 最长偶数长度的子串,使前半段和后半段之和相等
- 天真的模式搜索
- 公里的算法
- - karp算法
- 一个简单的模式搜索问题
- 有限自动机
- 有限自动机的有效构造
- Boyer Moore算法-坏字符启发式
- 后缀数组
- 字谜子字符串搜索(或搜索所有排列)
- 使用所有后缀的尝试进行模式搜索
- 模式搜索的Aho-Corasick算法
- kasai的算法从后缀数组构造LCP数组
- Z算法(线性时间模式搜索算法)
- 祝妇女节节目
- 最近的一对点| O(nlogn)实现
- 如何检查两个给定线段是否相交?
- 如何检查一个给定的点是否在一个多边形内或外?
- 凸包|集1 (Jarvis算法或包装)
- 凸包|集2 (Graham扫描)
- 给定n条线段,求任意两条线段是否相交
- 检查给定的点是否在三角形内
- 如何检查给出的四个点是否构成一个正方形
- 写一个有效的方法来检查一个数是否为3的倍数
- 与7相乘的有效方法
- 编写一个C程序打印给定字符串的所有排列
- 幸运数字
- 写一个程序,使两个数以14为基数相加
- 巴比伦的平方根法
- 两个整数相乘时不使用乘法、除法和位运算符,也不使用循环
- 打印所有可以组成给定数字的点的组合
- 无需使用乘法(*)和除法(/)运算符就可以编写自己的运算能力
- 斐波那契数列程序
- 一串数字的平均值
- 计算不包含3的数字
- MagicSquare
- 埃拉托斯特尼筛法
- 在M到N范围内具有最大素数因子的数
- 查找给定日期的星期几
- 基于DFA的部门
- 以相等的概率从1到7生成整数
- 给定一个数字,找出下一个最小的回文
- 从偏见的硬币制作一个公平的硬币
- 检查是否能被7整除
- 求3的最大倍数
- 字符串的字典顺序
- 按排序(字典式)顺序打印所有排列
- 洗牌给定数组
- 空间和时间有效二项式系数
- 水库采样
- 帕斯卡三角形
- 从流中选择一个带有O(1)空间的随机数
- 找到2,3和5的最大倍数
- 计算e^x的有效程序
- 用两个容器和无限的供水量一升
- 打印给定数字的所有质因数的有效程序
- 输出大小为n的给定数组中r个元素的所有可能组合
- 任意概率分布方式随机数发生器
- 如何检查一个给定的数字是否是斐波那契数?
- 俄罗斯农民乘法
- 计算大小为2或3的所有可能组的和为3的倍数
- 河内塔
- 多项式求值的霍纳法
- 在一个数的阶乘中计数尾部的0
- 第n个加泰罗尼亚号码的程序
- 根据给定的概率生成3个数字中的一个
- 从给定的列号中查找Excel列名
- 找出具有同一组数字的下一个更大的数
- 计算给定数字序列的可能解码
- 计算时针和分针之间的夹角
- 不连续为1的二进制字符串的个数?年代
- 找出与给定数n相乘的最小数
- 画一个没有浮点运算的圆
- 如何检查8个谜题的一个实例是可解决的?
- 生日悖论
- 用两个多项式
- 计算满足不等式x*x + y*y < n的不同的非负整数对(x, y)
- 计算达到第n楼梯的方法
- 将输入整数中的所有' 0 '替换为' 5 '
- 程序将两个多项式相加
- 打印1/n的前k位,其中n是一个正整数
- 给定一个数字作为一个字符串,找出递归相加为9的连续子序列的个数
- 程序的二分法
- 错误定位方法程序
- 牛顿法程序
- 找到只出现一次的元素
- 发现相反的迹象
- 设置从1到n的所有数字中的位
- 交换位
- 添加两个数字
- 最小的三个
- 一个布尔数组谜题
- 在一个(大)数组中设置位
- 具有相同位数的下一个更大的数
- 优化技术(模量)
- 给一个数字加1
- 乘以3.5
- 关闭最右边的设置位
- 检查4的力量
- 没有分支的绝对值(abs)
- 模数除以2的幂数
- 两个整数的最小或最大
- 旋转部分
- 在数组中找到两个非重复元素
- 奇数次出现的次数
- 检查整数溢出
- 小端和大端
- 一个数的反转位
- 在整数中计数设置位
- 将A转换成B所要翻转的位数
- 2的下一次幂
- 检查一个数是否为3的倍数
- 找到奇偶校验
- 将与7
- 求一个“不”是否等于2的幂
- 最右边设置位的位置
- 给定数的二进制表示
- 交换所有奇数位和偶数位
- 找到唯一设置位的位置
- 快速乘法的Karatsuba算法
- 如何在不使用临时变量的情况下交换两个数字?
- 使用按位运算符检查一个数是否为9的倍数
- 在一个字节中交换两个字节
- 如何关闭数字中的特定位?
- 检查一个数字的二进制表示形式是否为回文
介绍,DFS和BFS:
- 图表及其表示
- 宽度的第一个遍历图形
- 图的深度优先遍历
- 深度优先搜索的应用
- 在有向图中检测周期
- 检测一个无向图的图形
- 在无向图中检测周期
- 有向无环图中的最长路径
- 拓扑排序
- 检查一个给定的图是否是二部图
- 蛇梯问题
- 双连通分量
- 检查一个给定的图是否是树状的
最小生成树:
最短路径:
- Dijkstra最短路径算法
- 邻接表表示的Dijkstra算法
- bellman算法
- 弗洛伊德沃肖尔算法
- 全对最短路径的约翰逊算法
- 有向无环图中的最短路径
- 一些有趣的最短路径问题
- 有向加权图中有k条边的最短路径
连通性:
- 查找有向图中两个顶点之间是否有路径
- 有向图中的连通性
- 图中的连接点(或切点)
- 双连通图
- 图中的桥
- 欧拉路径和电路
- 弗勒里打印欧拉路径或电路的算法
- 强连通分量
- 图的传递闭包
- 找出岛屿的数目
- 计算从源到目的地的所有可能的行走,有k条边
- 有向图中的欧拉电路
- 双连通分量
- 寻找强连接分量的Tarjan算法
困难的问题:
最大流量:
Misc:
- 看看这些绳子能不能用链条串成一个圆圈
- 给定一个已排序的外来语言字典,找出字符的顺序
- 最小割值的卡格算法
- 最小割|集2的Karger算法(分析与应用)
- 最大匹配|集1的Hopcroft-Karp算法(介绍)
- 最大匹配|集2的Hopcroft-Karp算法(实现)
- 达到目标字的最短链的长度
- 在联系人列表中查找相同的联系人
所有算法在图上
测试在图
图遍历测验
图最短路径测验
图最小生成树小测验
图的编码练习
- 期望的线性
- 预期的试验次数直到成功
- 随机化算法| Set 0(数学背景)
- 随机化算法| Set 1(介绍与分析)
- 随机算法|设置2(分类和应用程序)
- 随机化算法|集3(1/2近似中位数)
- 最小割值的卡格算法
- 未排序数组|的第K个最小/最大元素
- 水库采样
- 洗牌给定数组
- 从单链表中选择一个随机节点
- 常见问题算法面试问题|集1
- 给定一个O和X的矩阵,求被X包围的最大子方阵
- 螺母和螺栓问题(锁和钥匙问题)
- 洪水填充算法-如何实现填充()在油漆?
- 给定n个约会,找出所有冲突的约会
- 检查一个给定的句子是否有一组简单的语法规则
- 求要用1替换0的下标,得到二进制数组中最长连续的1序列
- 如何检查两个给定的集合是否不相交?
- 铁路/巴士站所需最少月台数目
- 具有连续元素的最大子数组|的长度
- 具有连续元素的最大子数组的长度|集合2
- 打印从前n个自然数开始,长度为k的所有递增序列
- 给定两个字符串,查找第一个字符串是否是第二个字符串的子序列
- 蛇梯问题
- 写一个返回输入1的函数,返回1个返回2
- 以最小的成本连接n根绳索
- 找出给定长度的有效括号表达式的个数
- 最长单调递增的子序列大小(N log N):简单实现
- 生成所有二进制排列,使所有排列中每个点上的1多于0
- 词典标记最小弦旋转
- 用它的对和数组构造一个数组
- 评估简单表达式的程序
- 检查给定字符串中的字符是否可以重新排列形成回文
- 打印给定字符串数组中的所有字谜对
请参阅数据结构和高级数据结构用于图,二叉树,BST和链表的算法。
我们将会在这个网页上加入更多的类别和文章。