
数据结构
文章平均质量分 66
玄天灵
我不懒,但我还是什么都没写
展开
-
07、Java 数据结构:手写 ArrayList 集合源码
数组是 java 语言内置的数据类型,是一个线性的序列,所有可以快速访问其他的元素,数组和其他语言不同,当你创建了一个数组时,他的容量是不变的,而且在生命周期也是不能改变的,还有 java 数组会做边界检查,如果发现有越界现象,会报 RuntimeException 异常错误,当然检查边界会以效率为代价。java 还提供其他集合,list,map,set,它们处理对象的时候就好像这些对象没有自己的类型一样,而是直接归根于 Object,这样只需要创建一个集合,把对象放进去,取出时转换成自己的类型就行了。原创 2023-01-12 15:21:07 · 161 阅读 · 0 评论 -
06、Java 数据结构:稀疏数组及压缩
所谓稀疏数组就是数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用。因此造成内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以采用一种压缩的方式来表示稀疏数组的内容。原创 2023-01-11 18:07:59 · 229 阅读 · 0 评论 -
05、Java 数据结构:数组排序:冒泡排序、选择排序、插入排序
对于一个无序列表,拿出一个临时变量(起始为第二个元素),将其和前面元素循环比较,如果前面的元素比临时变量大,就讲前面的元素向后移动一位,如果前面的元素比临时变量小,或者已经到达的头部第一个元素,就结束循环,然后在依此循环后面所有的元素。如果有N个元素需要排序,那么首先从 N 个元素中找到最小的那个元素与第0位置上的元素交换,接着从剩余的 N-1 个元素中再次找到最小的那个元素和第1位置上的元素交换,依此循环。##1.2 代码实现。原创 2023-01-11 15:32:36 · 250 阅读 · 0 评论 -
04、Java 数据结构:有序数组和二分查找
插入新数据的时候很高效:O(1),查找和删除数据较慢:O(n)原创 2023-01-10 15:53:26 · 724 阅读 · 0 评论 -
03、Java 数据结构:无序数组
精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关如何插入一条新的数据项如何寻找某一特定的数据项如何删除某一特定的数据项如何迭代的访问各个数据项,以便进行显示或其他操作。原创 2022-12-29 19:59:49 · 933 阅读 · 0 评论 -
02、Java 数据结构:时间复杂度与空间复杂度
空间复杂度和时间复杂度很类似,当一个算法的空间复杂度为一个常量,即不随被处理数据量 n 的大小而改变时,可表示为 O(1);给大黄一条长10寸的面包,大黄吃掉第一个一寸需要1天时间,吃掉第二个一寸需要2天时间,吃掉第三个一寸需要3天时间…给大黄一条长16寸的面包,大黄每5天吃掉面包剩余长度的一半,第一次吃掉8寸,第二次吃掉4寸,第三次吃掉2寸…最高阶项为 0.5n^2,省去系数0.5,转化的时间复杂度为:T(n) = O(n^2) 大 O 平方阶。T(n) = 3n,执行次数是线性的。原创 2022-12-28 19:17:52 · 741 阅读 · 0 评论 -
01、Java 数据结构:数据结构和算法的概述
给定一个数集 A,假设其中的元素为 x。现对A中的元素 x 施加对应法则 f,记作 f(x),得到另一数集 B。假设 B 中的元素为 y。则 y 与 x 之间的等量关系可以用 y=f(x) 表示。把这个关系式就叫函数关系式,简称函数。函数概念含有三个要素:定义域 A、值域 C 和对应法则 f。其中核心是对应法则 f,它是函数关系的本质特征。原创 2022-12-28 19:04:06 · 578 阅读 · 0 评论