美文网首页
【算法打卡60天】Day3数组下标为什么从0开始

【算法打卡60天】Day3数组下标为什么从0开始

作者: 花生无翼 | 来源:发表于2019-11-28 09:52 被阅读0次

今天学习了第一阶段的“数组”,我的收获有:
文章题目抛出的标题是一个很有意思的问题,很多人可能都不会去想数组为什么
从下标0开始。数组作为我们平时工作中最常用的的数据结构,也是最基本的数据类型
,确实应该了解的透彻一些。
从以下4个方面理解数组:
1.数组如何实现随机访问
数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)

2.低效的“插入”和“删除”
数组为了保持内存数据的连续性,会导致插入、删除这两个操作比较低效
JVM 标记清除垃圾回收算,先标记,再一起删除,这样就大大减少了删除操作导致的数据搬移。

3.数组的访问越界问题
数组越界在平时工作中偶尔也会遇到,那就是没有判断越界情况,JAVA中数组越界的异常是java.lang.ArrayIndexOutOfBoundsException

4.容器能否完全替代数组
工作中用到ArryList多一些,那数组什么时候用,容器什么时候用好一些。
ArrayList的优势:
1.以将很多数组操作的细节封装起来,比如增加、删除。
2.动态扩容
注意:在创建 ArrayList 的时候事先指定数据大小。
数组的优势:
1.关注性能的代码,用基本数据类型,因为Java ArrayList 无法存储基本类型。
拆箱、装箱有性能消耗。
2.预先知道数据大小,而且对数据操作很简单。
3.表达多维数组的时候,用数组更直观,比如 Object[][] array

本文由【极客时间】专栏《数据结构与算法之美》学习得来。

相关文章

  • 【算法打卡60天】Day3数组下标为什么从0开始

    今天学习了第一阶段的“数组”,我的收获有:文章题目抛出的标题是一个很有意思的问题,很多人可能都不会去想数组为什么从...

  • 数组结构-数组

    数组下标为什么从 0 开始? 0 开始的寻址 a[k]_address = base_address + k * ...

  • 为什么数组下标从0开始

    为什么数组下标从0开始7月 21, 2015发布在 计算机科学 从0开始记数经常被作为一个人是一名程序员的象征,在...

  • 数组 - Array

    新建数组 数组的下标是从0开始 Java中,访问数组注意是否越界 打擂台算法Example:找出数组中前两大的数 ...

  • libevent中的小顶堆

    堆中某个结点与其父结点、左子树以及右子树数组下标的关系 从数组下标为1的位置开始存储堆: 从数组下标为0的位置开始...

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

    为什么数组的下标要从0开始而不从1开始? 相信这个问题很多人都没有仔细思考过,大多数人都习以为常。原因是:数组的第...

  • 数组

    一.为何编程语言的数组下标从0开始 1.从数组内存存储类型来看,数组的下标可以看作“偏移量”--offset;如果...

  • 学习笔记6-数组操作

    数组 数组下标从0开始 数组中元素可以是不同类型 访问超出下标元素会返回undefined 数组常用方法 方法名作...

  • 线性搜索算法 Go

    说明 线性搜索是指从数组0下标开始,依次序搜索对比的搜索方式。 代码 代码说明 面向算法:线性遍历数组,通过闭包传...

  • 11 数组

    数组的分类、定义 索引数组(就是js数组的下标情况嘛,下标为从0开始的连续整数)、关联数组、混合数组数组定义有很多...

网友评论

      本文标题:【算法打卡60天】Day3数组下标为什么从0开始

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