Aloha~又是我少女人妻 Uerica ! 中秋节过後就是秋天了,秋高气爽是最适合旅游的日子了,可惜连假已过而且还要写铁人赛文章呢~哈哈哈哈哈哈哈5555...
今天要来聊聊大家耳熟能详的阵列了!一般的程序语言都会内建阵列的资料型别 (type),除了少部分语言是由杂凑表、连结串列、搜寻树等来实现,像 Javascrpt 就是使用类似杂凑表资料结构的方式。
阵列与连结串列相同,也是属於线性资料结构,但阵列在宣告时就得定义记忆体空间的大小 (阵列长度),且是连续的储存在记忆体空间,而阵列内所储存的资料都需是相同型态。
而阵列在插入与删除资料元素较为费时,因是连续的储存在记忆体空间,不像连结串列仅改变指标指向的节点即可,阵列在插入与删除资料元素都得往後或往前移动所有元素。但在存取时因是连续性的资料,记忆体可计算出内容的索引 (index) 位置,所以能直接做存取,又称随机存取 (Random Access)。
若需要插入新的资料元素,要先确保阵列有足够长度,并由最後一个资料元素开始向後移动,直到需插入新资料元素的位置空出来。
如图示,今天要插入 data New 在data A与data B之间,首先须先确认阵列长度是否足够,再由最後方开始往後移动,直到空出欲插入的位置
然後就当啷~成功了
若要删除阵列中的资料元素,在取出欲删除的资料元素後,後方的资料元素需要一个个全部向前移动,直到所有资料元素都接续在一起。
现在想将 data B 的资料删除,要先将 data B 取出,之後让後方的 data C 往前接续
由於阵列属於随机存取,所以在存取任一资料元素时,时间复杂度为 O(1)。若需要插入或删除资料元素,因要一个个调整,故时间复杂度为 O(n)。
参考资料:
好搭!今天就先到这边啦!感谢阅读~今年连假跟去年连假一样都是在写铁人赛文章,参赛的各位都是防疫大使呢!呵呵呵呵呵...明天见啦掰掰~
又到了一年一度的铁人赛,这几年区块链的议题,一起都有一定热度,但自己本身一直都没有什麽兴趣,终於想说...
天亮了 昨晚是平安夜 关於迷雾森林故事 水底世界 就在泰迪跳进水中游水的瞬间 水流与泰迪身上的的毛高...
对於「半结构化」类型的资料可以存放至NoSQL 资料库*之中。NoSQL 资料库常见於需要较快写入速...
一日客语:中文:吃什麽 客语:(ㄘ1声)骂诶 想不到吧~加法可以写一篇,不要怀疑就是要拖台钱(喂~)...
上篇我们讲到了有/没有使用AWS Organization 启用Security hub的状况,那如...