数据结构与算法——一、数组

数据结构与算法——一、JAVA数组

前言

本次以总结学习过程的心得,针对最基本的数组学习过程还有一些时间空间复杂度的个人看法。

数组简介

看到数组就会想起最简单的结构一维数组——int a[n](n=0,1,2,3。。。)。
简要的分析一下必要条件:数组存储类型——int,一个数组首先最需要的就是大小——n,还有个个元素存放的下标——从0开始到n-1。

数组定义

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。
关键词:
1.线性表,就是数据排成一条线的结构,每个线性表上的数据最多只有前后两方向。(备注:这里除了数组外,还有后面需要链表、队列、栈都是线性结构)
2.非线性表,与线性表对立,比如二叉树、堆、图等(一单单有一条直线的结构,有分支)。
3.连续的内存空间和相同类型的数据,这个特性造成了有一些操作实现需比较麻烦的操作。我们都知道数组定义大小和类型后不能修改,所以比如删除、插入、修改数据类型就比较麻烦了,就需要再创建一个新的数组代替旧数组。

数组类ArrayList

这里就不详细介绍该类一些方法,因为java帮助文档里有更详细的记载。这里仅仅备注一些注意点和与数组选择:
1.ArrayList无法存储基本类型,比如int、long,都需要经过包装如Integer、Long类,如果实在是需要存储基本类型数据就不得不用数组。
2.如果数组大小已知那么最好是选用数组,毕竟修改起来也比较方便。

时间空间复杂度

时间复杂度:一般来说都是常量O(1)有时候需要遍历O(n),还有时会用二维到O(n^2)
空间复杂度:这里就要看数组是否有序,有序O(1),无须O(n)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值