爱到深处,是中庸--从中庸之道发现编程之美
行者中庸,心者永恒。...
“尘缘相误,无极花间住。”偶然间读到秦观的诗,“尘缘”自是相对灵境而同时而言的,然而联系到作者的坎坷身世,可见此中另有所寄托。天下熙熙,皆为利来;天下壤壤,皆为利往。空灵之境与名利之场,谁能以中庸对之呢?
程颐道:“不偏之谓中,不易之谓庸。”中:中点之形,平衡之意。在算法中,中可谓“分治法”。好的分治法,不仅分治,而且均衡,即不偏之中。通俗来讲,就是我们所熟悉的“折半法”。接下来,我们来从中庸之道发现编程之美。
购物狂
这个游戏的核心是一分为二的思想,实在一种有序数组中查找某一特定元素的搜索算法,在搜索过程中逐步缩小搜索的范围,且每次缩小一般。折半查找法比较次数少,查询速度较快。
折半求和
相信每个小朋友都计算过1到100的和,可惜有些老师和家长过早引出了高斯,用一个代数公式磨灭了这个游戏的趣味。真正带领孩子摸索出其中之奥秘不多。孩子是世界的发现者、创造者,他们的思维是纯粹的,引导他们自己发现世界、探索世界就显得尤为重要。将一数组从中间一分为二,分别求和,即折半求和,也称为递归调用。
递归思路:(1)每次递归只考虑当前任务中的一个子任务。
(2)递归结束条件:当begin=end时,两者处理的是同一数值,则递归结束。
抓住递归的本质,抓住数组的数值规律,问题也就迎刃而解。这两个小游戏的核心都是一分为二的做法,与那些比速度的口算题相比,有独树一帜的意义。
在程序中,我们常常面对一个数据结构,需要全面考察数据的范围、关系、进行折半。生活是一个巨大的数学模型,需要我们懂得眼前利益、长远利益的取舍,进行中庸。
而当不平衡、不中庸出现时,恰是我们改进、提升自我的机会,如何更好地得中庸之利,享中庸之福泽,快快加入我们的C++课堂吧!敬请期待下一回合--“中庸至善”
关注 HelloWorld少儿编程
微信扫一扫关注公众号