杨成将自己的思路实现成一行行代码。
这一过程中,经理目不转睛地盯着屏幕,若有所思。
直到他完成最后一行,测试了几个简单的例子。
经理终于发话了。
“你觉得你的递归程序,有什么地方需要改进呢?”
杨成扫视自己刚刚写过的程序,有了些眉目。
“在递归的过程中,很多数据被重复计算了”。
分治法将一个大的问题划分为独立的子问题,然后递归地求解各个子问题,最后合并子问题的解,得到原问题的解。
而对于这个问题,使用分治法,会大量地求解公共子问题,
或者说,子问题重叠了。
“那么,请你估算下,最坏情况下,你这个算法的时间复杂度是多少?”
经理接着发问。
“这...”
杨成挠了挠头,陷入了短暂的沉思。
“这个算法应该是指数级的吧!”
“具体我也不清楚”。
他倒是很诚实,经理脸上流露出一丝笑意。
“最后一个问题,你会怎么去优化它呢?”