为什么数据库下标从0开始
Posted 程序编织梦想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么数据库下标从0开始相关的知识,希望对你有一定的参考价值。
在讨论数组下标为什么从0开始之前我们先回顾一下数组有什么特点。
数组优点:
1.内存中占据连续的内存空间
2.数据随机访问,也就是说获取数据非常高效
那为什么说数组的数据可以随机访问而且取数据非常高效呢?
下面我们来看这样一张图:
上图是一个长度为10的整型数组,我们假设数组的首地址是1000。不难看出当下标从0开始的时候,数组中各个元素的首地址计算公式是:
a[i]地址 = 1000 + i*4。(其中1000是数组a的首地址,4是每个元素占的内存大小(int占4个字节大小)。)
可以看的出数组中根据下标随机访问的时间复杂度为O(1)非常高效。
如果下标从1开始会怎么样呢?计算公式如下:
a[i]地址 = 1000 + (i-1)*4。
可以看的出下标从1开始比下标从0开始多了一个减法运算(即:i-1)。虽然我们口算一下感觉很简单,但是在cpu中需要转化成2进制,通过好几条指令来运算才能得到结果。
试想一下,数组作为非常底层的一个数据结构,它的运算是要保证非常高效的,怎么可能多花费一次运算呢?所以数组的下标是从0开始,而不是从1开始。
当然这只是我个人的一种观点,如果大家有更好的观点,可以留言讨论一下。
好了,今天就说到这吧,希望对大家有所帮助。
欢迎关注我的微信号,我会持续的更新数据结构的相关内容,并领取很多视频学习资料。
扫二维码关注公众号【Java程序员的奋斗路】可领取如下:
1.学习资料: 1T视频教程(大约有100多个视频):涵盖Javaweb前后端教学视频、机器学习/人工智能教学视频、Linux系统教程视频、雅思考试视频教程,android.等
2.项目源码:20个JavaWeb项目源码。
以上是关于为什么数据库下标从0开始的主要内容,如果未能解决你的问题,请参考以下文章