递归算法的设计模式与调试
2011-05-08陈宝平
电子科技 2011年9期
陈宝平
(内蒙古财经学院信息管理系,内蒙古呼和浩特 010070)
一个直接或间接调用自己的算法称为递归算法。递归是软件设计中的重要方法和技术,其省略了程序设计中的许多细节操作,简化了程序设计过程,递归函数结构清晰,程序易读[1]。因此,在许多实际问题求解时,采用递归方法要比非递归方法容易实现,特别是在解决树、图等问题过程中得到了广泛应用[2-4]。在计算机科学中,许多数据结构都是通过递归方式加以定义的,由于其本身固有的递归性质,因而关于它们许多问题的算法均可以采用递归技术加以实现;另外,还有一些问题虽然本身没有明显的递归特征,但可以利用递归技术设计出简单高效的算法程序。递归问题一般采用分治法解决,分治法的设计思想是:将一个难以解决的大问题,分割成一些规模较小的相同问题,以便逐个击破,分而治之。文中在分治的基础上,进一步细化,提出递归算法的模型,并通过一些比较经典的实例加以说明。另外,递归问题在求解的过程中,如果有错,程序会中断,并出现“栈溢出”或“执行了非法操作”等信息,这些信息一般是在递归算法的某一过程中出现,调试难度较大,文中提出使用设置断点单步跟踪及打印变量等方法调试。
1 递归算法的设计模式
“自重复”是递归算法所具有的重要特征,对任何递归问题,都有向前递推和向后回退两个过程,把握这两个过程中的关键思维及其终点和起点至关重要。……
登录APP查看全文
