算法研究
文章平均质量分 75
研究一些常用的算法,适用于初级接触算法的小白
Adam_allen
这个作者很懒,什么都没留下…
展开
-
图的DFS和BFS算法解析
图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系。对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示。 在图的基本算法中,最初需要接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优先搜索(BFS)和深度优先搜索(DFS)。本文将给出给出BFS和DFS的以下几种实现方式: 1、使用队列Queue实现图的BFS遍历 2、递...原创 2018-03-07 16:04:24 · 1861 阅读 · 0 评论 -
位操作来轻松高效的解决问题
维基 位操作是通过算术操作位或其他短于数据的数据段的操作。需要位操作的计算机编程任务包括低级设备控制,错误检测和纠正算法,数据压缩,加密算法和优化。对于大多数其他任务,现代编程语言允许程序员直接使用抽象而不是代表抽象的位。进行位操作的源代码使用按位操作:AND,OR,XOR,NOT和位移。 在一些情况下,位操作可以避免或减少循环遍历数据结构的需要,并且可以提供多倍的加速,因为位操...转载 2018-03-12 10:45:40 · 355 阅读 · 0 评论 -
字符串问题
字符串作为Java中最常用的工具,我们应该了解它的基本算法,下面来介绍一些常用的算法:1.求某个字符串的所有子串1.1二进制算法:给定任意一个字符串,比如 “123” 结果是: [3, 2, 23, 1, 13, 12, 123] 例如: 123 转化为二进制就是2的3次方=8 所以就是0-7的二进制数 000 001 ...原创 2018-03-16 13:56:32 · 307 阅读 · 0 评论 -
哈希表(散列表)
什么是哈希表?哈希表(Hash table,也叫散列表)根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。记录的存储位置=f(关键字)这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这块连...转载 2018-03-16 15:45:58 · 266 阅读 · 0 评论 -
动态规划算法
动态规划的英文名叫Dynamic Programming,是一种分阶段求解决策问题的数学思想。它不仅用于编程领域,也应用于管理学、经济学、生物学 总结一点就是大事化小,小事化了 题目:求楼梯阶数有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。 比如,每次走1级台阶,一共走10步,这是其中一种走法。我们可以简写...原创 2018-03-28 11:40:52 · 485 阅读 · 0 评论 -
kadane的算法
下面来介绍一道LeetCode上的题: Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the con...原创 2018-04-08 09:08:56 · 635 阅读 · 0 评论 -
Boyer-Moore Voting算法
Leetcode 169.Majority Element Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is n...原创 2018-04-08 21:13:53 · 726 阅读 · 0 评论