不要小瞧数组![数据结构与算法][Java]
不要小瞧数组![数据结构与算法][Java]
Jayfar- 数据结构是所有计算机专业的同学必学的课程
- 数据结构研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据
- 数据结构是所有计算机专业的同学必学的课程
- 数据结构研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据
数据结构 + 算法 = 程序
面向面试
- 数组
- 栈
- 队列
- 链表
- 二分搜索树
- 堆
面向竞赛
- 线段树
- Trie
- 并查集
不要小瞧数组!
- 数组的基础就是把数据码成一排进行存放
1 | package cn.shuzu; |
1. 向数组中添加元素
1 | package cn.shuzu; |
1 | package cn.shuzu; |
2. 在数组中查询元素和修改元素
1 | package cn.shuzu; |
1 | package cn.shuzu; |
1 | Array: size = 10,Capacity = 20 |
使用泛型
- 让我们的数据机构可以放置“任何”数据类型
- 不可以是基本数据类型,只能是类对象。
(boolean, byte, char, short, int, long, float, double)
- 每个基本数据类型都有相应的包装类
(Boolean, Byte, Char, Short, Int, Long, Float, Double)
动态数组
在静态数组中如果数组满了就要进行动态扩容。
1 | private void resize(int newCapacity) { |
1 | public void add(int index,E e) { |
1 | //在移除数组元素的过程中,如果数组长度小于容量的一半就进行缩容 |
简单的时间复杂度分析
- O(1),O(n),O(lgn),O(logn),O(n^2)
- 大O描述的是算法的运行时间和输入数据之间的关系
1 | public static int sum(int[] nums){ |
- 时间复杂度O(n),n是nums中的元素个数,算法和n呈线性关系
为什么要用大O,叫做O(n)?
忽略常数。实际时间T = c1*n + c2
1 | T = 2*n + 2 O(n) |
针对数组进行复杂度分析
addLast(e) O(1)
addFirst(e) O(n)
add(index,e) O(n/2) = O(n)
严格计算需要一些概率论知识。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果








![博客标签页展开[Hexo]](https://img.wjwj.top/2025/02/18/922b3930b4bda22d8bcfe6c9a4d64727.png)
![博客头像虚化[Hexo]](https://img.wjwj.top/2025/02/15/c8b01a133a448fd52c60c187c8b9e8d0.png)

