除了迭代式的快速排序,还有递归式的快速排序,在实现它之前,我们先来学习一个概念:递归。
这个概念非常重要,因此,关于它我们得多说两句。
递归(Recursion)
存在于多个领域
递归这一术语,应用面非常广泛,在语言学、逻辑学、数学和计算机科学中都有出现。
虽然在不同领域的具体定义不同,不过从直观上看,无论在哪个领域,递归就像一条贪吃蛇:所做得事情,是“自己吃自己”!
历史悠久
对一种自己吃自己的条状动物的描述,早在古埃及时期就有了,古埃及壁画中的含尾蛇(Ouroboros)就是这样一种形象。
含尾蛇由希腊学者引入欧洲,成为中世纪炼金术的符号。下图就是一副 15 世纪的炼金术小册子中的插图。