美文网首页
必知必会 - 数据结构 - Array

必知必会 - 数据结构 - Array

作者: 半山Light | 来源:发表于2020-08-13 17:24 被阅读0次

1.为什么数组都从0开始编号?

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。
从数组存储的内存模型上来看,下标最确切的定义应该是偏移。
计算 a[k]的内存地址只需要用这个公式:
a[k]_address = base_address + k * type_size
如果数组从 1 开始计数,那我们计算数组元素 a[k]的内存地址就会变为:
a[k]_address = base_address + (k-1)type_size*
所以,为了减少一次减法操作,数组选择了从 0 开始编号,而不是从 1 开始。另外,也有历史原因,C 语言用 0 开始计数数组下标,之后的 Java、JavaScript 等高级语言都效仿了 C 语言,当然很多语言中数组也并不是从 0 开始计数的,比如 Matlab。甚至还有一些语言支持负数下标,比如 Python

2.数组和链表的区别?

链表适合插入、删除,时间复杂度 O(1);
数组适合查找,数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)

  • —— 定期更新有质量的知识点,欢迎跟踪

相关文章

网友评论

      本文标题:必知必会 - 数据结构 - Array

      本文链接:https://www.haomeiwen.com/subject/dwabdktx.html