前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据结构与算法笔记(1)

Python数据结构与算法笔记(1)

作者头像
发布2018-09-03 18:03:49
9180
发布2018-09-03 18:03:49
举报
文章被收录于专栏:WD学习记录WD学习记录

ADT

参考:

01_抽象数据类型和面向对象编程 数据结构与算法--ADT

ADT

ADT(abstract data type)是由用户定义的数据类型,它制定了一组数据值的集合及可作用在这些数据值上的一组操作。ADT的定义与它的具体实现无关,因此只关注如何使用它,无需关注它的具体实现。

ADT可以被看做一个黑盒子。用户程序与ADT实例的交互是通过调用定义在ADT接口上的操作进行的。操作集可以分为4类:

  • Constructors:创建和初始化ADT的实例
  • Accessors:返回实例中的数据,而不进行修改
  • Mutators:修改ADT实例的内容
  • Iterators:逐个处理单个数据组件

数据结构

ADT将定义与实现进行了分离。自定义的ADT必须要有一个实现,而实现ADT时我们所做出的选择会影响实现的功能和效率。

数据结构可以通过以下两方面来描述:

1. 它们如何存储和组织单个数据元素

2. 提供哪些操作来存取和处理其上的数据

常用术语定义

  • collection:集合,指一组数据值,单个数据值之间没有隐含的组织关系
  • container:容器,指存储和组织一个集合的数据结构或者ADT。集合中的单个数据值称为容器的元素(element),当容器中没有元素时,称容器为空(empty),Python中容器的例子有:string,tuple,list,dict,set
  • sequence:序列,是一种容器,该同期的元素按线性排列,并且每个元素能通过其位置访问(即通过下标访问)。Python中的序列例子:string、tuple、list
  • sorted sequence:有序序列,元素的位置基于每个元素的前后元素的某种预定关系确定。

数组和列表

参考:

数组和列表

数组array

数组是最常用的一种线性结构,其实python内置了一个array模块,但是大部分人甚至从来没用过它。Python的array是内存连续、存储的都是同一数据类型的结构,而且只能存储数值和字符。

常用的是numpy.array

列表List

操作

平均时间复杂度

list[index]

O(1)

list.append

O(1)

list.insert

O(n)

list.pop(index), default last element

O(1)

list.remove

O(n)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ADT
    • ADT
      • 数据结构
        • 常用术语定义
        • 数组和列表
          • 数组array
            • 列表List
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档