当前位置: 首页 > 后端技术 > Python

Python数据结构与算法

时间:2023-03-26 18:42:27 Python

数据结构与算法(Python)Why?举个可能不太恰当的例子:如果把开发程序的过程比作打仗,我们码农就是指挥打仗的将军,我们写的代码就是士兵和武器。那么什么是数据结构和算法呢?答:孙子兵法!我们可以在战场上战斗而不看兵法。这样,我们可能赢也可能输。即使是胜利也可能付出巨大的代价。我们写程序也是一样:没有见过数据结构和算法,有时遇到问题可能没有思路,不知道怎么解决;很多时候,我们可能解决了问题,却没有意识到程序运行的效率和开销,性能低下;有时借助别人开发的利器暂时解决了问题,但遇到性能瓶颈时,却不知道如何进行针对性的优化。如果我们经常看兵法,就能取得心目中的成功,有时还会事半功倍!同样,如果我们经常看数据结构和算法,我们就能写出游刃有余的程序,明察秋毫,遇到问题也能游刃有余地解决问题。所以,数据结构和算法是一个程序开发人员必备的基本功,不可能一夜之间成为绝世高手。冰冻三尺非一日之寒,需要我们不断主动学习积累。Introduction先来看一个问题:如果a+b+c=1000,且a^2+b^2=c^2(a,b,c为自然数),如何求出所有a,b,cc的可能组合?首先尝试[AppleScript]纯文本视图0,1001):forCinRange(0,1001):IFA**2+B**2==C**2andA+B+C==1000:Print("A,B,C:%d,%d,%d"%(a,b,c))end_time=time.time`()``print("elapsed:%f"`%``(end_time-start_time))print("complete!"`)运行结果:[AppleScript]纯文本查看__复制代码?1a`,b,``c:0,``500,500a,``b,c:``200,375,```425``a,b,``c:375,``200,425a,``b,c:``500,0,`500``elapsed:214.5`83347完成!注意运行时间:214.583347秒算法提出算法概念算法的本质是计算机处理信息的过程,因为计算机程序本质上就是一种算法,告诉计算机执行指定任务的确切步骤。一般而言,算法在处理信息时,会从输入设备或数据存储地址读取数据,并将结果写入输出设备或存储地址,供以后调用。算法是解决独立存在的问题的方法和思路。对于算法来说,实现的语言并不重要,重要的是思想。算法可以用不同的语言来描述和实现(比如C描述、C++描述、Python描述等),而我们现在都是用Python语言来描述和实现的。算法的五个特点1.输入:算法有0个或多个输入2.输出:算法至少有1个或多个输出3.有限性:算法会在有限的步数后自动结束不会出现死循环,每一步都可以在可接受的时间内完成。4、确定性:算法中的每一步都有明确的意义,不会出现歧义。5.可行性:该算法是每一步都是可行的,也就是说每一步都可以执行有限的次数来完成第二次尝试【AppleScript】纯文本view__复制代码?1234importtimestart_time=time.time`(`)#注意这是一个双循环forainrange(0,1001):forBinRange(0,1001-A):C=1000-a-BifA**2+B**2==C**2:print("a,b,c:%d,%d,%d"%(a,b,c))[/size][/font][`font=MicrosoftYahei][size=3]end_time``=``time.time()``print("elapsed:%f"``%``(end_time-start_time))print("complete!")运行结果:[AppleScript]Plaintextview__Copycode?1a`,b,``c:0,``500,500a,``b,c:``200,`375,```425``a,b,``c:375,``200,425a,``b,c:``500,0,``500``耗时:0.1`82897完成!笔记运行时间:0.182897秒