1、命名
2、注释
3、减少流程控制
4、一段代码只做一件事
5、写出简洁的代码
6、通过提前返回来简化逻辑控制
7、算法与数学
我们通过一个简单的例子来实现数学与程序的紧密结合。这道题很简单,对 自然数 x求和,比如 x = 6, sum = 0 + 1 + 2 + 3 + 4 + 5 + 6
你可能会感到很轻松,因为在程序中用一个简单的 for 循环就可以实现。我猜你第一个想到的可能是下面的算法。当然,这段代码使用Python写的,请不要在意range()这些Python内置函数,它就跟 C 里面的 for(i =0; i <= x; i++) 含义是一样的。
恩,代码看起来简洁有力,可是,如果x = 100000000呢,for 循环就要执行100000000次,时间和空间复杂度为 O(n)(可能有些不准呀)。这样是不是不太合理呢。
再想想初中学过的数学,是不是有下面的公式来求和。
ok,转换为程序。(当然没有加入 x > 0 程序异常控制什么的。。。),是不是简洁多了,时间和空间复杂度都变成O(1)了。
持续更新----------------------我会慢慢将代码贴上,,,
建议读者看看这本书哦-------------------------------------------------------持续更新-------------------------------------------------------
网友评论