数据结构算法Python-第一节
文章目录
一、why:为什么要学习数据结构与算法
算法简介
英文:algorithm,一个计算过程,解决问题的办法。程序=数据结构+算法
算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉我计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。
算法是独立存在的一种解决问题的方法和思想
对于算法而言,实现的语言并不重要,重要的是思想。算法可以有不同的语言描述实现版本(如C描述、C++描述、python描述等),我们现在用的是python语言进行描述实现。
算法的特征
1、输入:算法有0个或者多个输入
2、输出:算法有至少一个或多个输出
3、有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成
4、确定性:算法中的每一步都有确定的含义,不会出现二义性
5、可行性:算法的每一步都是可行的,也就是说每一步执行都能够执行有限的次数完成
二、引入算例
如果 a+b+c = 1000,且 a ^ 2+b ^ 2=c ^ 2,如何求出所有a,b,c可能的组合?
方法1 枚举法
用时101秒
方法2-算例优化
数学公式改进,尽可能的将计算步骤前移
用时0.98秒
三、关于算法的效率衡量
1 执行时间反应算法效率
对于同一问题,我们给出了两种解决算法,在两种算法的实现中,我们对程序执行的时间进行了测算,发现两段程序执行的时间相差悬殊(101秒对比0.98秒),由此我们可以得出结论:实现算法程序的执行时间可以反应出算法的效率,即算法的优劣
单靠时间值绝对可信吗?
假设我们将第二次尝试的算