Python数据结构与算法(二)--顺序表

顺序表

基本形式

lo + (n - 1)* c

元素外置

用于存储不同类型的数据,数据类型所占字节大小不统一

顺序表中存的是地址

结构

  • 还需要有表头

    存储顺序表的信息,容量,元素个数

    需要先定义好顺序表的大小

  • 数据区

实现方式

  • 直接顺序
  • 分离式

    三个元素,前两个做表头

    最后一个作为地址指向数据

  • 分离式优点

    保留原有表头地址不变

扩充与替换

  • 扩充

    扩充固定多个数目

    倍增的方式:

    用空间换时间

  • 支持扩充的顺序表叫做动态顺序表

顺序表操作

  • 增加元素

表尾插入

O(1)

 

保序元素插入

O(n)

 

非保序的元素插入:

与要插入的位置元素置换

O(1)

 

  • 删除元素

删除队尾

O(1)

 

保序删除

O(n)

 

非保序:

队尾元素换到删除元素位置

O(1)

 

Python中顺序表

list、tuple都是用顺序表实现的

  • list:

    分离式存储

    元素外置存储

    动态顺序表

    初始化:8个元素存储区

    倍增方式:

    4倍

    50000阀值时一倍一倍增加

你可能感兴趣的:(Python,顺序表)