文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

为什么数组的下标从 0 开始?

2024-12-03 02:21

关注

本文转载自微信公众号「微观技术」,作者Tom哥  。转载本文请联系微观技术公众号。

首先,我们来复习下数组的定义

数组是一组连续内存空间存储的具有相同类型的数据,整个排列像一条线一样,是一种线性表数据结构。

那么,问题来了,数组的下标为什么要从 0 开始?从 1 开始行不行?

端好你的小茶杯,开始进入正题

数组之所以广泛使用,是因为它支持随机访问。

什么叫随机访问?

数据在内存中都是按顺序存放的,通过下标直接触达到某一个元素存放的位置。

公式:

  1. ① 读取上面数组的 【0】位置的 `微` 
  2. ② 读取上面数组的 【9999】位置的 `注` 
  3.  
  4. 由于基于计算的内存地址读取数据,上面两种情况的耗费的时间是一样,时间复杂度为 O(1) 

注意:想要使用随机访问,一定要满足两个条件: 1、连续的内存空间 2、相同类型的数据

知识补充:

与随机访问对应的是顺序访问

顺序访问:链表在内存中不是按顺序存放的,而是通过指针连在一起,访问某一元素,必须从链头开始顺着指针才能找到某一个元素。

突然,一个奇怪的念头冒了出来,假如我们将数组的首个下标从 1 开始 ,会怎么样?

我们读取 下标为n 的数据

公式:

与上面的公式的区别,多了一次 n-1 操作

虽然也能读取数组中的值,但是多了一次减法的指令运算。

数组是一个最基础、最简单的数据结构。要知道我们的上层API内部很多都会依赖于数组,而互联网应用又讲究一个高并发,一言不合就是千万级QPS,如此高频的访问量,这个冗余的减运算 就会放大无数倍,产生巨大的性能损耗。

这样说,可能大家感受不一定明显!!!

”我在马路边捡到一分钱,把它交到警察叔叔手里边“。现在再有一分钱,你还会捡吗,估计很多人都看不上眼,但要是全国人民每人给你一分钱呢

14亿 * 1分钱 = 1400万 人民币

是不是可以立马辞职,回家躺平了!

 

量变引发质变,做软件开发,我们一定要考虑将性能优化到极致,骨子里透着工匠精神。

 

来源:微观技术内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯