复杂简单化,现实抽象化

程序设计中有一条一直被程序员们牢记的信条——自顶向下,逐步求精。
这八字信条虽然观之简单,却是程序设计中解决难题最有效的方法,那我们今天就小小的聊一下这八个字的含义及一些应用。

与题目相对应,自顶向下,简单来说就是将一个庞大的程序分而治之,分成一小块一小块,从小块上着手,将复杂问题简单化,最后再由各小块拼装成为最后完整的大程序。
而逐步求精,就是将现实中的事物用逻辑思维使其抽象化,数据化,以达到更加利于表达的目的,使问题变的直观,简单。
这两种方法,有个共同点,就是都会简化问题,当二者叠加使用时,是不是忽然感觉以前所谓的难题变得十分清晰了?

大概讲了它们的含义,我们再来点干货,举些平时运用的例子。
拿杨辉三角举例
这里写图片描述
上图是杨辉三角的C语言代码
其中的嵌套循环是该代码的主体
这里写图片描述
外层循环表示层数,内层循环每层的的各个数字
那么我们是如何得到这个程序的呢?这就是自顶向下的一种思维,将大的问题化为小的,有点类似数学归纳法,我们只要找到每行数字的规律,题目的难度就会下降几个档次。
比如杨辉三角每行的数其实就是组合数,也可以说是二项式各项的系数,知道了这点,我们再利用逐步求精的思维使其抽象化,变成直观的算式,这样一道看似工程量巨大的题就不攻自破了。
当然,知道这些思想和熟练运用他们还是有一定差距的,我们要成为合格的程序员,就应当灵活运用它们。所以我的建议是平时做题的时候,尽量先在脑子里构建好整个程序,这样久而久之养成习惯,一个优秀的程序猿自然就诞生了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值