数组理论基础
在刷题时经常会遇到数组这种类型的数据结构,出的题也是五花八门。数组是很基础的一种数据结构,在笔试和面试的过程中,考察数组的题目一般在思路上都不难,主要是考察对代码的把握能力。也就是说,想法通常很简单,但实现起来可能就不是那么回事了。首先要知道数组在内存中的存储方式,这样才能真正理解数组相关的面试题。
那么什么是数组呢?数组其实是存放在连续内存空间上的相同类型数据的集合。
数组可以方便的通过下标索引的方式获取到下标下对应的数据。
举一个字符数组的例子,如图所示:
需要注意的是:
1、数组下标都是从0开始的。
2、数组内存空间的地址是连续的。
正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址,导致增删元素较慢。
例如删除下标为3的元素,需要对下标为3的元素后面的所有元素都要做移动操作,如图所示:
而且大家如果使用C++的话,要注意vector 和 array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。
数组的元素是不能删的,只能覆盖。
那么二维数组直接上图,大家应该就知道怎么回事了。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...