在计算机内存中,整数占据四个字节,存取时的类型对应取出的类型
顺序表
通常使用顺序存储来存放相同类型的数据,数据的地址都是按照顺序来存放的,可以通过公式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倍扩增