python-数据结构之顺序表

在计算机内存中,整数占据四个字节,存取时的类型对应取出的类型

顺序表

通常使用顺序存储来存放相同类型的数据,数据的地址都是按照顺序来存放的,可以通过公式l0+(n-1)*c来找到每个数据的位置,这种方法称之为顺序表。

若有一串整数 L=[2,3,4,5]四个数字,L[0]代表了第一个元素的地址位也就是起始位,L[2]代表了第三个元素的地址位,可以通过初始地址位偏移得到,相当于ROM

元素外置顺序表

如果每个元素的单位不统一则不能使用顺序表,需要使用元素外置,通过其储存其地址来获得他们的循序,相当于RAM

顺序表的结构和实现

顺序表中除了数据区还有表头,表头包含了容量和元素个数

实现方法:

一体式结构:将表头信息和数据信息一起存储起来,便于管理,整体性强但是元素储存比较固定,不能添加更多的元素

分离式结构:表对象只有表头,数据信息在另一个储存区,再通过链接和表头储存区关联起来,更加灵活,易用顺序表的扩展。

扩充的方式:

递增方式:每次增加一倍的容量,用空间换取时间,但是可能会浪费空间资源

固定方式:每次增加一个固定的量,例如10,20等,操作次数多,不建议使用

顺序表中的操作:

增加:1.表尾端加入元素,时间复杂度为O(1)   2. 非保序加入元素,时间复杂度为O(1)  3.保序加入元素,时间复杂度为O(n)

删除:1.表尾端删除元素,时间复杂度为O(1)   2. 非保序删除元素,时间复杂度为O(1)  3.保序删除元素,时间复杂度为O(n)

Python种的顺序表:

在Python list种,采用分离式结构,因为列表可以动态添加元素,同时顺序表采用递增方式扩增(4倍),当容量到达50000时,则降为1倍扩增

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值