关于java:java基础语法数据结构和算法

2次阅读

共计 1560 个字符,预计需要花费 4 分钟才能阅读完成。

1,数据结构:

数据结构是一种非凡的组织和存储数据的形式,能够使咱们能够更高效地对存储的数据执行操作。

数据结构的三要素:

1)逻辑构造:

逻辑构造是指数据元素之间客观存在的关系,和数据在计算机中怎么存储无关,次要用于人们了解和交换以及领导算法的设计。逻辑构造分为四类:

  • 线性构造:数据元素之间存在一对一的关系
  • 树形构造:数据元素之间存在一对多的关系
  • 图形构造:数据元素之间存在多对多的关系
  • 汇合构造:数据元素属于同一个汇合

2)物理构造(存储构造):

逻辑构造次要用于算法设计,而存储构造用于领导算法编程实现。存储构造有根本的两种构造:

  • 顺序存储:逻辑上相邻的元素存储在物理地位相邻的存储单元中。
  • 链式存储:在数据元素中增加一些地址域或辅助构造,用于存放数据元素之间的关系。

3)数据的运算

数据结构中的操作次要是指数据元素的查找、插入、删除、遍历和排序等等。


2,罕用数据结构:

1). 数组

在 Java 中,数组是用来寄存同一种数据类型的汇合,留神只能寄存同一种数据类型。

2). 链表

链表是一种非间断、非程序的构造,数据元素的逻辑程序是通过链表中的指针链接秩序实现的,链表由一系列结点组成。

3). 堆栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限度是仅容许在表的一端进行插入和删除运算。这一端被称为栈顶,绝对地,把另一端称为栈底。它体现了后进先出(LIFO)的特点。

4). 队列

队列是一种非凡的线性表,非凡之处在于它只容许在表的前端进行删除操作,而在表的后端进行插入操作,亦即所谓的先进先出(FIFO)。

5). 哈希表

散列表也叫哈希表,是依据要害键值 (Keyvalue) 进行拜访的数据结构,它通过把关键码值映射到表中一个地位来拜访记录,以放慢查找的速度,这个映射函数叫做散列函数。

6). 树

树(tree)是蕴含 n(n>0)个节点的有穷汇合,其中:每个元素称为节点(node)有一个特定的节点被称为根节点或树根(root),除根节点之外的其余数据元素被分为 m(m≥0)个互不相交的联合 T1,T2,……Tm-1,其中每一个汇合 Ti(1<=i<=m)自身也是一棵树,被称作原树的子树(subtree)。

7). 堆

堆是一颗齐全二叉树,在这棵树中,所有父节点都满足大于等于其子节点的堆叫大根堆,所有父节点都满足小于等于其子节点的堆叫小根堆。

8). 图

图是由结点的有穷汇合 V 和边的汇合 E 组成。其中,为了与树形构造加以区别,在图构造中经常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就示意这两个顶点具备相邻关系。


3,算法:

算法用来设计并实现一种用计算机来解决问题的办法。

它满足下列性质:

  • 输出:有零个或多个输入量
  • 输入:产生至多一个输出量
  • 确定性:算法的指令清晰、无歧义
  • 有限性:算法的指令执行次数无限,执行工夫无限

4,常见算法:

1)疾速排序算法

疾速排序是一个知名度极高的排序算法,其对于大数据的优良排序性能和雷同复杂度算法中绝对简略的实现使它注定失去比其余算法更多的钟爱。

2)堆排序算法

堆排序 (Heapsort) 是指利用沉积树(堆)这种数据结构所设计的一种排序算法,它是抉择排序的一种。

3)归并排序

归并排序(Merge sort)是建设在归并操作上的一种无效的排序算法。该算法是采纳分治法(Divide and Conquer)的一个十分典型的利用。

4)二分查找算法

二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。

5)抉择排序

抉择排序简略直观,先在数据中找出最大或最小的元素,放到序列的起始;而后再从余下的数据中持续寻找最大或最小的元素,顺次放到排序序列中,直到所有数据样本排序实现。

6)插入排序

通过构建有序序列,对于未排序的数据序列,在已排序序列中从后向前扫描,找到相应的地位并插入,相似打扑克牌时的码牌。插入排序有一种优化的算法,能够进行拆半插入。

正文完
 0