一些简单的数据结构的名词解释

线性表:
线性表是由n(n≥0)个相同类型的元素组成的有序集合。
栈:
线性表的一种特殊形式,是一种限定性数据结构,也就是在对线性表的操作加以限制后,形成的一种新的数据结构。是限定只在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈。
队列:
将线性表的插入和删除操作分别限制在表的两端进行,和栈相反,队列是一种先进先出的线性表。允许插入的一端称为队尾,允许删除的一端称为队头。
串:
线性表的一种特殊形式,表中每个元素的类型为字符型,是一个有限的字符序列。
堆:
堆是具有下列性质的完全二叉树:每个结点的值都小于或等于其左右孩子结点的值(称为小根堆);或者每个结点的值都大于或等于其左右孩子结点的值(称为大根堆)。
堆排序:
首先将待排序的记录序列构造成一个堆(假设利用大根堆),此时,选出了堆中所有记录的最大者即堆顶记录,然后将它从堆中移走(通常将堆顶记录和堆中最后一个记录交换),并将剩余的记录再调整成堆,这样又找出了次大的记录,以此类推,直到堆中只有一个记录为止。

java堆和栈的区别:
①数据结构:堆:堆可以被看成是一棵完全二叉树树(最小堆和最大堆)。栈:一种先进后出的数据结构。
②栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据在多个线程或者多个栈之间是不可以共享的,但是在栈内部多个值相等的变量是可以指向一个地址的。
堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
③ 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
④Java中的数据类型有两种。
一种是基本类型(primitivetypes), 共有8种,即int,short, long, byte, float, double, boolean, char(注意,并没有string的基本类型)。这些字面值的数据,由于大小可知,生存期可知(这些字面值固定定义在某个程序块里面,程序块退出后,字段值就消失了),出于追求速度的原因,就存在于栈中。
另一种是包装类数据,【如Integer,String, Double等将相应的基本数据类型包装起来的类。这些类数据全部存在于【堆】中】,Java用new()语句来显示地告诉编译器,在运行时才根据需要动态创建,因此比较灵活,但缺点是要占用更多的时间。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spark中,有一些名词和概念是需要理解的,其中包括函数式编程。下面简单介绍一下这些概念。 ### 名词解释 - Spark:一个开源的分布式计算框架,可以用于大规模数据处理。 - RDD(Resilient Distributed Dataset):弹性分布式数据集,是一种能够被并行处理的、容错的、不可变的数据集。 - DataFrame:一个分布式的数据集合,可以被看做是由一组命名列组成的表格。 - Dataset:一种类型化的DataFrame,可以在编译期进行类型检查,提高代码的可靠性和性能。 - Spark SQL:一个用于结构化数据处理的模块,支持SQL语言和DataFrame/Dataset API。 - Spark Streaming:一个用于实时数据处理的模块,可以对实时数据流进行高效的处理。 - MLlib:一个用于机器学习的库,包含了常用的机器学习算法和工具。 - GraphX:一个用于图计算的库,支持大规模的图计算操作。 ### 函数式编程 函数式编程是一种编程范式,强调将计算过程看作是一系列的函数组合。与命令式编程相比,函数式编程更加注重表达式的求值结果,而不是执行的过程。因此,函数式编程更加关注问题的本质,而不是解决问题的步骤。 在Spark中,函数式编程也得到了广泛的应用。例如,Spark中的RDD和DataFrame/Dataset都是不可变的数据结构,这也是函数式编程的一个特点。此外,Spark中的很多API都是基于函数式编程的风格,例如map、filter、reduce等操作都是函数式编程中常见的操作。函数式编程还能够帮助我们编写更加简洁、可读性更高的代码,提高代码的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值