搜索

结合实例解析深度优先搜索(DFS)搜索

结合实例解析深度优先搜索(DFS)搜索当你从一个顶点开始,沿着某条路往下走,一直走到底,如果走完后发现不能达到目标解,就回溯,返回到上一个节点,换条路,然后继续走到底,如此往复,直至所有可能的结果都被搜索完。通俗理解就是不撞南墙不回头这种……

C++ STL二分查找std::lower_bound()函数入门

前面几章,我们已经深入学习了很多查找算法,比如find()函数、find_if()函数、find_first_of()函数等,它们都是线性查找。本节我们开始其他查找方式的学习,比如lower_bound()函数、upper_bound()函数、equal_range()函数和binary_search()函数,它们都能够查找元素,只不过底层采用二分查找的方式,效率比线性查找高。本节我们进行lowe

舞蹈链算法(Dancing links)实例讲解

舞蹈链算法(Dancing links)实例讲解前面的文字介绍了舞蹈链,这里就不详细描述什么是舞蹈链了,舞蹈链(Dancinglinks)是一种数据结构,可以用来实现X算法,以解决精确覆盖问题。本篇的内容主要把舞蹈链Dancinglinks应用于实……

结合实例解析宽度优先搜索(BFS)搜索

结合实例解析宽度优先搜索(BFS)搜索本篇将会结合实例解析宽度优先搜索(BFS)。一、BFS概念宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Pri……

最优化算法实例讲解

最优化算法实例讲解DFS(深度优先搜索)是一种常见的算法,我们平时遇到的大部分题目都可以用DFS解决,但是一般情况下,这都是骗分算法,很少会有爆搜为正解的题目。因为DFS的时间复杂度特别高。一、定义DFS(深度优先搜索……