唯心主义是哲学上的两大基本派别之一,同唯物主义相对立的哲学思想体系。唯心主义的基本含义,是在思维和存在、精神和物质的关系这个哲学基本问题上,认为精神(意识)第一性,物质第二性,精神决定物质,物质是精神的产物。唯心主义有两种基本表现形式:客观唯心主义和主观唯心主义。客观唯心主义认为,在现实世界之外独立存在着一种客观精神,它是世界的本源,世界万物是由它产生(派生)出来的。其著名代表人物,有中国的朱熹、古希腊的柏拉图和德国的黑格尔等。主观唯心主义是把人的主观精神(意识、观念等)作为认识世界的出发点,存在主观精神之中的是认知上的世界,是主观精神的产物,而并非真正客观上的世界。主要代表人物,有中国的陆九渊和王守仁,英国的贝克莱和德国的费希特等。
一、递归
- 递归:程序调用自身的编程技巧称为递归,是函数自己调用自己。
- 使用递归要注意的有两点:
- 递归就是在过程或函数里面调用自身
- 在使用递归时,必须有一个明确的递归结束条件,称为递归出口
- 一个问题只要同时满足以下3个条件,就可以用递归来解决:
- 优缺点
- 优点:代码的表达力很强,写起来简洁。
- 缺点:空间复杂度高、有堆栈溢出风险、存在重复计算、过多的函数调用会耗时较多等问题。
- 递归代码编写
- 写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码。
二、迭代
- 迭代:用变量的原值推算出变量的一个新值。如果递归是自己调用自己的话,迭代就是A不停的调用B。
三、对比
概念 | 优点 | 缺点 |
---|---|---|
递归 | 1.大问题化为小问题,可以极大的减少代码量 2.用有限的语句来定义对象的无限集合 3.代码更简洁清晰,可读性更好 |
1.递归调用函数,浪费空间 2.递归太深容易造成堆栈的溢出 |
迭代 | 1.迭代效率高,运行时间只因循环次数增加而增加 2.没什么额外开销,空间上也没有什么增加 |
1.不容易理解 2.代码不如递归简洁 3.编写复杂问题时困难。 |