(七)穷竭搜索

来源:互联网 发布:java web开发 编辑:程序博客网 时间:2024/04/29 03:50

递归函数

                 再次调用自身的行为成为递归

                应用与斐波那契数列

               实现一种LIFO能力,具备push和pop功能

              C++里面已经含有这种函数

队列

              实现一种FIFO能力,具备push和pop功能

              C++里面已经含有这种函数


深度优先搜索(DFS)

              思想:从某个状态开始,不断转移状态,直至无法转移,然后回退前一步,继续转移其他状态,如此不断循环,直至找到最终解。

             利用深度优先搜索的思想解下题:


题二:


广度优先搜索(DFS)

             思想:总是搜索距离初始状态近的状态。

             深度优先搜索(隐式)利用栈进行计算,而广度优先搜索利用了队列进行计算。

             利用广度优先搜索思想解下题:


特殊状态的枚举

          利用n个元素共n的阶乘种不同的排列生成出来。


剪枝

        思想:有些状态无论如何都不存在解的时候,我们需要直接跳过搜索,这一方法成为剪枝。


栈内存和堆内存

       主调函数所拥有的局部变量存储在特点的内存区域,这些区域成为栈,另外用new和malloc申请的区域成为堆内存。栈内存在程序启动时被统一分配,并不再扩大。全局变量被保存在堆内存区。

0 0