失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python数据结构与算法分析_数据结构与算法(Python版)

python数据结构与算法分析_数据结构与算法(Python版)

时间:2022-01-06 13:48:52

相关推荐

python数据结构与算法分析_数据结构与算法(Python版)

为什么研究数据结构与算法

本周带大家进入Python版数据结构与算法的学习。想必大家都听过“算法”一词,算法的学习对编程者来说是至关重要的。首先我们先了解一下为什么要研究数据结构与算法,掌握了数据结构与算法可以给我们带来哪些帮助。一起进入今天的学习吧(^_−)☆

01

为什么研究数据结构与算法?

为了清晰高效地表达算法;

为了控制问题和问题解决过程的复杂度,利用抽象来保持问题的整体感,而不会陷入到过多的细节中去。这要求对现实问题进行建模的时候,对算法所要处理数据也要保持与问题本身的一致性,不要有太多与问题无关的细节。

可以把问题分为以下几个模块:

这样可以让我们不必过早的陷入某个步骤的解决当中,也可以实现团队的分工合作从而提高解决问题的效率。

02

2.数据抽象:ADT抽象数据类型

相对于过程设计语言中基本数据类型,抽象数据类ADT(Abstract Data Type)是对数据进行处理的一种逻辑描述,并不涉及如何实现这些处理。

抽象数据类型ADT建立了一种对数据的封装(Encapsulation),封装技术将可能的处理实现细节隐蔽起来,能有效控制算法的复杂度。

03

3.数据结构是对ADT的具体实现

封装以后同一ADT可以采用不同的数据结构来实现;

采用程序设计语言的控制结构和基本数据类型来实现ADT所提供的逻辑接口。

逻辑层次就是它的接口和接口的功能描述;而具体怎么实现的,通过什么样的程序设计语言,如何去实现它,这里的“实现”就属于它的物理层次。

04

4.ADT实现:数据结构 Data Structure

ADT实际上就是希望能够对数据实现“逻辑”和“物理”层次上的一个分离。分离了以后,我们就可以定义复杂的数据模型去解决问题,而复杂的数据模型又不需要我们马上去考虑这个模型是怎么实现的,我们只需要复杂的数据模型可以解决复杂的问题就可以,接下来再去考虑问题的分解以及复杂数据类型的实现,这些具体是怎么实现的。

05

5.接口的两端:抽象与实现

“逻辑”和“物理”分离的关系就好比电动汽车与汽油车的关系。

底层动力能源是不同的,内部结构和实现方向是不一样的,但开车的操作接口(方向盘、油门、刹车、档位)基本都是相同的,这样司机不需要重新去考驾照,而车厂也可以继续改进实现技术。

逻辑层面上保持稳定,而物理层面上却可以持续的改进。可以不断提高改进“实现”层面。

对抽象数据类型可以有多种实现方案,独立于实现的数据模型。

让底层开发程序员专注于实现和优化数据处理,又不改变数据的使用接口;让用户专注于数据接口来进行问题的解决,而无需考虑如何具体实现这些接口。

通过层层抽象降低了问题解决过程的复杂度。

06

6.为什么要研究和学习算法

(1)学习各种不同问题的解决方案,有助于我们在面对未知问题的时候,能够根据类似问题的解决方案来更好地解决。

(2)各种算法通常有较大差异,我们可以通过算法分析技术来评判,判断法本身特性,而不仅仅根据实算法的程序在特定机器和特定数据和特定数据上运行的表现来评判他。

(3)即使同一个程序,在不同的运行环境和输入数据不同的情况下,其表现的差异可能也会很大。在某些情况下,当我们碰到棘手的难题,可以区分这种问题是根本不存在算法,还是可以找到算法但需要耗量大量的耗费大量的资源,我们只能够近似的去处理。

(4)某些问题解决需要一些折中的处理方式,我们需要学会在不同算法之间选择以确保合适当前条件的要求。

今天的学习内容就到这里啦~欢迎大家提出意见、指导。明天见喽,感谢大家的阅读。

如果觉得《python数据结构与算法分析_数据结构与算法(Python版)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。