摘要:
关于equals和== 的区别 可以参考这篇文章 http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long, 阅读全文
摘要:
查找主要分类: 如上图所示:查找可分为动态查找和静态查找。 静态查找:只是在数据集合中查找是否含有某个元素。 动态查找:查找过程中包括数据的插入和删除中产生的数据。 1:静态查找 1.1:无序查找:相对容易,只提供无序查找的代码 1.2:有序查找 有序查找又可以分为顺序查找和二分查找。 1.2.1: 阅读全文
摘要:
1:排序算法的概述 影响排序的三个主要因素:时间复杂度 空间复杂度 稳定性 并且排序又分为内部排序和外部排序。 内部排序:待排序元素全部调入到内存中进行的排序。 外部排序:待排序的数据元素很大,需要分批次的导入内存中,需要借用外部内存或者磁盘空间。 1:插入排序 1.1:简单插入排序 核心思想:类似 阅读全文
摘要:
最短路径:带权图中从一个结点到另外一个结点可能会有多个路径,但是将带权路径长度值最小的一条路径成为最短路径。 1:(Dijkastra)迪克斯特拉算法: 迪克斯特拉算法用于最短路径的方法和prim用于最小生成树的方法类似都是按照路径权值由小到大的顺序来产生最短路径。 主要思想:设置两个集合的结点S和 阅读全文
摘要:
最小生成树:这里面有两个概念:(1):必须为一个树,并且为一棵生成树(树的定义有且仅有一个前驱结点,可以有有多个后驱子节点,并且(n-1)条边都在图中) (2):必须是最小连通的。(多一条边会使树形成回路,不满足生成树的概念,少一条边,则会使树不连通) 因此,最小生成树必须满足三个条件: (1):必 阅读全文
摘要:
图形中数据的遍历分为两种情况,一种是深度优先遍历,一种是广度优先遍历。 1:深度优先遍历 深度优先遍历类似于树中的先序遍历,进入到一个分支之后一直往下进行,直到该分支遍历完成。 书中写到:在图的所有邻接点中,每次都在访问完当前结点后首先访问当前节点的第一个邻接结点。 可以写出类似的伪码: 深度优先遍 阅读全文
摘要:
图具有的特点是:每个结点有零个或者多个前驱结点,并且有零个或者多个后驱结点。 图的存储方式分为邻接矩阵和邻接表。而邻接矩阵适合于稠密图中,邻接表适合于稀疏图形中。 同时图又分为:有向图,无向图。 结点与结点之间相连是为1,如果不想连则定义为零。 1:邻接矩阵 主要是邻接矩阵存储的设计方式:图的结点信 阅读全文
摘要:
之前讲了递归调用二叉树,下面简单的介绍非递归二叉树遍历。 非递归二叉树遍历是采用的栈的方式,将结点分为,根节点,左子树,右子树的顺序分别在不同的时候入栈和出栈。 1:非递归前序遍历(DLR) 2:非递归二叉树中序遍历 正确方法: 3:后序二叉树的非递归遍历 阅读全文
摘要:
1:二叉树的建立 二叉树的建立有两种模式:(1):首先设计二叉树的结点类,然后在此基础上,用static成员函数实现二叉树的具体操作。 (2):设计二叉树的结点类,然后在二叉树的结点类的基础上设计二叉树类。 设计完了二叉树的结点类之后,在二叉树的结点类的基础上用static成员函数实现二叉树的具体操 阅读全文
摘要:
递归算法:开始不断的调用自己,直到到达递归的出口,当到达递归的出口之后,最后调用的最先返回。做递归算法最重要的是找到出口。 就好比栈 ,开始一直往栈里面装入东西,直到抵达出口的时候才开始往外面拿东西。 图示左边先不断的调用,右边是从栈顶开始不断的返回。 实例1:求阶乘 过程图 实例2:用对半法来查找 阅读全文