美文网首页
2018-06-26数据结构引入和list列表解析

2018-06-26数据结构引入和list列表解析

作者: 菩灵 | 来源:发表于2018-06-27 21:37 被阅读7次

算法:关注于解决问题的步骤和解题思路。
数据结构:解决一组数据保存形式的问题。

*Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

数据保存类型不一样,最终处理时候的算法不一样。
数据结构指数据对象中数据元素之间的关系。

数据结构指数据对象中数据元素之间的关系:
数据结构只是静态的描述了数据元素之间的关系。
高效的程序需要在数据结构的基础上设计和选择算法。
程序 = 数据结构 + 算法
总结:算法是为了解决实际问题而设计的,数据结构是算法需要处理的问题载体。

抽象数据类型(ADT):把构建出来的数据结构和它所支持的操作放在一起;数据结构定义好,支持的操作列出来,操作具体如何实现不用管。
最常用的数据运算有五种:

  • 插入
  • 删除
  • 修改
  • 查找
  • 排序

几种基本的数据结构:

内存:

计算机的内存跟CPU打交道,处理数据。
内存是什么样的模型?——内存以字节作为基础存储数据,一个字节八位(二进制数据),作为存储标识。
*对于32位机来说,整形(普通整形,非长整型)需要四个单元。

整形1的存储
我们看到的是一个整形1,实际上占四个字节。
*Python中没有的char,就理解为一个字符。
类型的第一个本质:决定在计算机中占多少个内存单元
所有高级的数据结构都是由基本的数据类型来构成的。
连续存放的数据结构如列表,一次计算就能定位到所在位置。
顺序表:将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。(按顺序存储,展开是表格形式)
顺序表存储

假设操作系统32位,存Li = [200, 390, 78, 12112]的时候,一次性向系统申请了4x8Bytes=32Bytes的存储单位;用变量指向之后,变量代表了起始地址。
所以,列表的第一位从0开始,这个下标(逻辑地址)代表的是偏移的位数,0代表不偏移,所以才是第一位。


顺序表的基本布局

当存储的列表中有不同的元素类型,所占用的内存大小不一,无法再用像存整数一样索引;但是它们的地址大小是一样的,所以可以把地址依次存储。

不同类型元素列表

先申请一些内存地址,把列表中每个元素存储,存储的地址是随机的;再申请一个内存地址,把每个元素的地址按顺序依次存储。这个时候真正的元素在顺序表之外,成为元素外置。


元素外置

相关文章

网友评论

      本文标题:2018-06-26数据结构引入和list列表解析

      本文链接:https://www.haomeiwen.com/subject/smlvyftx.html