摘要: 如果让你写出快速排序的代码,大部分人都应该有清晰的思路。但是如果要求用非递归的形式实现呢,还会这么容易吗,如果换成其他的递归式呢,递归程序转换非递归有没有较为通用的方法。 递归就是一种函数调用,区别只是调用的目标函数是自身。递归调用是在程序栈区实现的,这也就启发我们用栈数据结构去模拟递归过程 递归函数的调用过程可以展开为一颗递归树,树的遍历是经典的递归问题,同时也可以作为递归转非递归的模板。 阅读全文
posted @ 2013-07-01 22:23 苍穹逸影 阅读(2750) 评论(0) 推荐(0) 编辑
摘要: 递归很美,美的让菜鸟找不着北。 阅读代码时我们总是根据函数的调用跳到不同的函数去阅读(除非函数名有很清晰明了),程序执行过程也是不断的跳转,一个函数里调用另一个函数很容易理解,但是函数里调用自己就有些令人迷惑了。 每次遇到递归的程序都有点发怵,主要问题有三个:一是递归程序含义的理解,二是递归实现的机制,三是递归程序复杂度的计算。 本文从这三部分入手,深入理解递归,让这种看似高深的函数调用方法不再神秘和可怕。 阅读全文
posted @ 2013-07-01 20:20 苍穹逸影 阅读(2413) 评论(0) 推荐(0) 编辑