摘要: 一、概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序(使用内存),而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说九大排序就是内部排序。 内部排序有可以分为以下几类: (1)、插入排序:直接插入排序、希尔排序、二分法插入排序。 (2 阅读全文
posted @ 2017-07-10 22:09 鹏达君 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 前言:查找是开发中用的非常多的一项,比如mysql中的查找,下面主要简单介绍一下查找。 1:线性表查找 线性表查找主要分为顺序查找和链式查找,顺序表查找都是从一端到另一端进行遍历。比如下面代码: 第二种是链式查找也非常简单 2:基于有序顺序表的二分查找 这个用的比较多,因为查询效率比较高,但是有限制 阅读全文
posted @ 2017-07-10 22:01 鹏达君 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 最短路径—Dijkstra算法和Floyd算法 1、Dijkstra算法 1.1、定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在 阅读全文
posted @ 2017-07-10 22:00 鹏达君 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 一、图的遍历 广度优先搜索BFS( Breadth-first search) 算法思想:(1)顶点v入队列。(2)当队列非空时则继续执行,否则算法结束。(3)出队列取得队头顶点v;访问顶点v并标记顶点v已被访问。(4)查找顶点v的第一个邻接顶点col。(5)若v的邻接顶点col未被访问过的,则co 阅读全文
posted @ 2017-07-10 21:56 鹏达君 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 1、概念 图: 是一种复杂的非线性数据结构。图的二元组定义: 图 G 由两个集合 V 和 E 组成,记为: G=(V, E) 其中: V 是顶点的有穷非空集合, E 是 V 中顶点偶对(称为边)的有穷集。 通常,也将图 G 的顶点集和边集分别记为 V(G) 和 E(G) 。 E(G) 可以是空集。若 阅读全文
posted @ 2017-07-10 21:54 鹏达君 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 一、B-tree B-tree树即B-树(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。按照翻译,B 通常认为是Balance的简称。这个数据结构一般用于数据库的索引,综合效率较高。 1970年,R.Bayer和E.mc 阅读全文
posted @ 2017-07-10 21:51 鹏达君 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 1、概念 红黑树(Red-Black Tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于19 阅读全文
posted @ 2017-07-10 21:48 鹏达君 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 二叉查找(搜索)树(Binary Search Tree)又称二叉排序树(Binary Sort Tree),是基于二叉树,BST具有下列性质:1、若左子树不空,则其左子树上的所有结点的值均小于根结点的值;2、若右子树不空,则其右子树上的所有结点的值均大于根结点的值;3、左、右子树也分别为二叉查找树 阅读全文
posted @ 2017-07-10 21:43 鹏达君 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 1、堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足K 阅读全文
posted @ 2017-07-10 21:36 鹏达君 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 一、树 树形结构是一类重要的非线性结构。树形结构是结点之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息 阅读全文
posted @ 2017-07-10 21:34 鹏达君 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1.定义:广义表是一种复杂的数据结构,是线性表的扩展,能够表示树结构和图结构。 2.细分定义:广义表是n个数据元素a0,a1,...,an-1组成的有限序列,记为GList=(a0,a1,...,an-1)其中,(1)ai或为不可分的数据元素(称为原子),或为可再分的广义表(称为子表)。(2)广义表 阅读全文
posted @ 2017-07-10 21:33 鹏达君 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 文字描述 1、十字链表的结点的结构 1、十字链表的结点的结构 down 和right分别指向该列和该行的下一个元素, Data保存的是该非零元素的信息(包括行,列,以及存储的元素值) down 和right分别指向该列和该行的下一个元素, Data保存的是该非零元素的信息(包括行,列,以及存储的元素 阅读全文
posted @ 2017-07-10 21:32 鹏达君 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 文字描述 倒置:把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵,记作AT或A。 通常矩阵的第一列作为转置矩阵的第一行,第一行作为转置矩阵的第一列。 那么,在已经存储好的三元组的顺序存储结构中,如果如何实现矩阵的倒置呢??? 第一反应肯定是直接遍历,然后行列对换即可,但是因为要求按照行号优先( 阅读全文
posted @ 2017-07-10 21:31 鹏达君 阅读(942) 评论(0) 推荐(0) 编辑
摘要: 一、名词解释 1、稀疏矩阵 矩阵阵中非零元素较少且分布的没有规律 2、三元组存储 矩阵中的一个元素有三个属性:行号,列号,元素的值,成为三元组 3、顺序结构 对于每一个三元组而已,根据行号优先或者列号优先排序起来,便于后期针对矩阵的运算 二、压缩与还原 1、压缩 逐行扫描矩阵,遇见非零元素就记录下来 阅读全文
posted @ 2017-07-10 21:25 鹏达君 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 文字描述 矩阵的压缩:对于某些特殊的矩阵来说,非零元素较少,大部分元素为0,采用某种算法,将非零元素存储在一位数组里以达到节省存储空间的目的的过程,称为矩阵的压缩 矩阵的还原:将压缩后的数组还原成原始矩阵的过程 1、对角矩阵 ①矩阵介绍 所谓对角矩阵: 矩阵中的所有非零元素都集中在以主对角线为中心的 阅读全文
posted @ 2017-07-10 21:16 鹏达君 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 1.队列基础概念 a.队列也是一种运算受限的线性表。它只允许在表的一端插入(入队),而在另一端进行删除(出队)。b.允许删除的一端称为队头,允许插入的一端称为队尾。在队列中没有元素时称为空队列。c.在空队列中依次加入元素a1,a2,...,an之后,a1是对头元素,an是队尾元素。而退栈顺序也跟入队 阅读全文
posted @ 2017-07-10 20:30 鹏达君 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 例四、汉诺塔 1、问题描述 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间 阅读全文
posted @ 2017-07-10 20:29 鹏达君 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 例三、算术表达式求值1、问题描述当一个算术表达式中含有多个运算符,且运算符的优先级不同的情况下,如何才能处理一个算术表达式?????2、思路首先我们要知道表达式分为三类: ①中缀表达式:a+(b-c/d)*e ②前缀表达式+a*-be ③后缀表达式abcd/-e*+ 由于运算符有优先级,所以在计算机 阅读全文
posted @ 2017-07-10 20:25 鹏达君 阅读(2857) 评论(0) 推荐(0) 编辑
摘要: 例二、分隔符匹配问题 1、问题描述 编译器在编译一段代码时,首先进行的就是分隔符的匹配,常见的分隔符有{ } [ ] ( )/* */ 2、思路 首先要知道的一件事就是:分隔符运行嵌套,而且,读入的顺序和处理的顺序相反,很显然是用栈。 算法描述如下: 从左到右扫描java语句,从语句中不断的读取字符 阅读全文
posted @ 2017-07-10 20:15 鹏达君 阅读(264) 评论(0) 推荐(0) 编辑
摘要: package org.Stone6762.MStack.adopt; import java.util.Scanner; import org.Stone6762.MStack.imple.LinkStack; /** * @author_Stone6762 * @Description_大数相加 阅读全文
posted @ 2017-07-10 18:08 鹏达君 阅读(249) 评论(0) 推荐(0) 编辑