数据结构概念以及与算法区别

 数据结构:

  在考虑什么是数据结构时,首先我们先来看这么一个需求:

  假如现在要使用python的数据类型来保存《三国演义》里面人物的信息,保存之后该如何最以快方式获取每个人物的相关信息了?

  实际上,我们在考虑这个问题时,就已经涉及到了数据结构相关的知识了。

  在python中,我们常用列表与字典来存储数据,现在我们就分析一下,如果我们分别使用这两种数据结构的时候,他们的算法效率那个会更好一点:

   用列表保存数据:

    要获取列表里面每个任务的信息时,我们就要去遍历列表,他的时间复杂度为:O(N)

  用字典保存数据:

    在使用字典保存人物信息时,我们可将人物的姓名作为字典的键,人物信息作为字典的值。进而查询人物信息时,我们可以不用再去遍历直接通过键就可                以快速找到人物对应的信息。  时间复杂度为O(1)

  我们为了解决问题,需要将数据保存下来,然后根据数据的存储方式来设计算法,实现对数据的处理。一般数据的存储方式不同就会导致需要不同的算法进处    理。我们希望算法解决问题的效率越快越好,于是我们就会考虑数据究竟如何保存的问题,这就是数据结构。

  上面的问题中,我们选择python中的列表或者字典来存储人物的信息。列表与字典就是python内建帮我们封装好的两种数据结构。

 

概念:

  数据是一个抽象的概念,将其进行分类后得到程序设计语言中的基本类型(python中基本数据类型:int,float,char等)。数据元素之间不是独立的,存在特定的关系,这些关系便是结构。数据结构指数据对象中数据元素之间的关系。

  Python给我们提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫Python的内置数据结构,比如列表、元组、字典。

  有些数据组织方式,Python系统里面没有直接定义,需要我们自己去定义实现这些数据的组织方式,这些数据组织方式称之为Python的扩展数据结构,比如栈,队列等。

 

数据结构与算法之间的区别:

   通过前边算法的介绍,与上边数据结构的介绍,想必都对什么是数据结构与算法有了清晰的认识,现在我们来看一下算法与数据结构究竟有什么不同:

  数据结构只是静态的描述了数据元素之间的关系。

  高效的程序需要在数据结构的基础上设计和选择算法。

  程序 = 数据结构 + 算法

  总结:数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合于这种算法的数据结构。一种数据结构如果脱离了算法,那还有什么用呢?实际上也不存在一本书单纯的讲数据结构,或者单纯的讲算法。当然两者也是有一定区别的,算法更加的抽象一些,侧重于对问题的建模,而数据结构则是具体实现方面的问题了,两者是相辅相成的。

 

  好了,今天要说的任务已经完成了。写这篇文章目的主要有两个,一是总结数据结构的基本知识,另一个目的就是与之前谈的算法进行一个联系与比较,可以更深刻的去理解他们在python中时怎么存在与实现的。这篇文章,和上一篇一样,都是很简单很基本的东西,不过虽然简单,但是对于初学数据的小白来说,确是必须掌握的技能。因为算法与数据结构始终会贯穿在python的每一个地方,只有掌握这些算法思维与数据结构,以后在python的学习中才会走的坚定,走的更远。

 

后续还会更新这方面的东西,要是有兴趣的,可加关注,会有更多精彩等着喽

 

 

 

 

  

 

      

posted @ 2018-01-11 23:26  payneLi  阅读(5396)  评论(0编辑  收藏  举报