最近学习了python数据结构,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用
一 C数组在内存中的存储
开辟一块连续的指定大小的空间来存储指定类型的数据。
假设数组的首地址为50,每个浮点数占8个字节
那么在查找的时候:
a[2] = 50 + 2 * 8
二 Python列表与C数组的不同
(1)列表的元素是不固定类型的
(2)列表是不固定长度的
三 Python的列表是怎样实现的
(1)列表中存储的是地址,而不是存储具体数据,地址指向具体的数据
(2)在超出列表容量实现自动扩容,实现过程是重新建立一个大容量的列表,复制以前列表的数据后把原列表销毁
四 Python列表常见操作的时间复杂度
简单的从算法的角度考虑:
-
Append():O(1)
-
Pop():O(1)
-
Insert(i):O(n)
-
Remove(val):O(n)
五 64位和32位机器的区别
比如32位机器
-
运算器一次最多可以处理32位数据
-
寄存器最大宽度32
-
寄存器和运算器之间的通路为32位
如下面的16位机器,运算器和寄存器之间通路为16位。寄存器最大宽度为16位,运算器一次最多处理16位数据。
我们需要知道的是:
(1)64位比32位拥有更大的寻址能力,处理运算能力更好
(2)常见的数据类型占用的字节数
六 总结
如有错误恳请指正,如有侵权请联系我删除
参考文章: 64位机器与32位机器的区别