【算法】算法图解笔记_广度优先搜索 -Haskell代码实现

2019-08-25
阅读 2 分钟
2.6k
之前的广度优先遍历没有Haskell代码的实现,这里补上。下面代码使用了unordered-containers包的哈希表,用来实现图;containers包的Seq类型,用来实现队列,主要是因为使用内置的列表类型效率太差。

【算法】算法图解笔记_广度优先搜索

2019-04-13
阅读 3 分钟
2.7k
你经常需要解决最短路径问题(shorterst-path problem)。解决最短路径问题的算法被称为广度优先搜索。广度优先搜索算法最早由Edward F. Moore 1959年在“如何从迷宫中寻找出路”这一问题中提出。

【算法】算法图解笔记_散列表

2019-04-08
阅读 2 分钟
1.4k
线性查找的时间复杂度O(n),二分查找为O(logn),有没有时间复杂度为O(1)的查找吗? 当然有,这就是散列表。 散列函数 散列函数“将输入映射到数字”。其必须满足一些要求。 它必须是一致的。对于同样的输入,输出必须是一样的。 最理想的情况是,将不同的输入映射到不同的数字。这样,不同的输入就会映射到不同的位置。 这...

【算法】算法图解笔记_快速排序

2019-03-31
阅读 2 分钟
1.9k
分而治之(divide and conquer,D&C)是一种著名的递归式问题解决方法。只能解决一种问题的算法毕竟用处有限,而D&C提供了解决问题的思路,是另一个可供你使用的工具。

【算法】递归应用_常见算法的递归实现

2019-03-26
阅读 3 分钟
1.8k
用递归函数定义如下:(1) n = 0时,f(n) = 0(2) n = 1时,f(n) = 1(3) n > 1时,f(n) = f(n-1) + f(n-2)

【算法】算法图解笔记_选择排序

2019-03-21
阅读 2 分钟
1.6k
需要将数据存储到内存时,你请求计算机提供存储空间,计算机给你一个存储地址。需要存储多项数据时,有两种基本方式——数组和链表。但它们并非都适用于所有的情形,因此知道它们的差别很重要。

【算法】算法图解笔记_算法简介

2019-03-16
阅读 2 分钟
2.5k
在读《算法图解》这本书,这本书有两个优点: 手绘风格的图,看着很让人“入戏”; 算法采用Python语言描述,能更好的表达算法思想。 关于算法的学习有两点心得: 算法思想最重要,理解了思想,算法是很容易写出来的,所以尽量不要把过多精力放在细节上。比如,本书的快速排序,使用了列表推导式,很简单就把算法的思想描...