Algorithm in Python(1)

计算机算法或数据结构类书籍描述算法语言有伪编程语言和真实编程语言两种。伪语言简洁但无法执行,C、C++、Java等可执行但不够简洁。Python能取二者之长,作者想用Python描述经典数据结构和算法,并附上Unit Test代码保证可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在计算机算法或数据结构类经典书籍中,用于算法描述语言的选择有两种情况,一种是选用“伪编程语言”,另外一种是选择C、C++或Java等“真实编程语言”。前者的例子是《 Introduction to Algorithm》,而后者的例子是《 Algorithm in C++》。(当然,有个变态老头用自己臆想的汇编语言来描述算法,居然还成了名著,这不是我们正常人可以讨论的)

采用伪语言,优点是简洁凝练,始终集中于算法本身,不受语言实现相关问题(如内存分配啦,类型系统啦)影响;相应的,其缺点是无法执行,对于读者或受教者来说缺乏直观感受及动手修改的可能。

采用C、C++或Java等“重型”编程语言(Sorry,Java fans!这里我把Java和C,C++相提并论,但它们确实太像了!),其优缺点正好与伪语言截然相反:长于可执行却短于不够简洁明了。

如果说有一种语言能取上述二者之优点并避其所短的话,那么我一定毫无私心地说,那就是Python!(嗯,我前面说过我是一个Pythoner了吧)Python具有类似伪语言的表达能力,同时又足够简单(没有C,C++中的动态内存分配和释放问题,也不受C、C++和Java中类型系统的拖累)。

某不才,想用Python来描述一系列经典的数据结构和算法,算是自娱吧。另外,作为“测试先行”理念的鼓吹者,所有的Unit Test代码也一并附上,至少能最小程度保证代码的可靠性吧。

我主要的参考书是《Algorithm in C++》。(其实我更喜欢《Introduction to Algorithm》,但是那页码也太恐怖了,背上它机动能力会降到0的)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值