10 2017 档案

摘要:为使计算机求解几何问题,可采用计算几何学来实现高效的算法和数据结构。 1. 判断两向量是否平行 使用向量外积 2.判断两向量是否正交 使用向量内积 3. 判断线段相交 利用点线之间的位置关系 4. 点与圆的交点、圆与圆的交点、凸包问题 阅读全文
posted @ 2017-10-28 22:15 zmlgo 阅读(188) 评论(0) 推荐(0)
摘要:一、求所有点对间最短路径 弗洛伊德算法: 假设以加权有向图G=(V, E)为对象,则该算法不需要G的所有边均非负,只要G不包含负环即可(所有边的权值之和为负的环)。同时可判断G中是否有负环(若算法执行完后,存在某顶点到其自身最短距离为负时,则表示有负环)。 二、拓扑排序 有向无环图DAG可用于表示各 阅读全文
posted @ 2017-10-28 21:51 zmlgo 阅读(287) 评论(0) 推荐(0)
摘要:Disjoint Sets是一种用互质集合(一个元素不同时包含于多个集合的集合)对数据进行分类管理的数据结构。互质动态集合中的各个集合都是一个树结构,且每个树的根节点用于区分集合的代表元素,因此又可称该数据结构为森林结构。 三种操作: makeSet(x):创建仅包含元素x的新集合 findSet( 阅读全文
posted @ 2017-10-28 21:19 zmlgo 阅读(243) 评论(0) 推荐(0)
摘要:一、图的类型 二、图的表示:G = (V, E) 1、邻接表 对V的每个顶点都用一个表来表示,每个表中包含所有与该顶点相邻的顶点组成,所有的表构成图的邻接表。 具体实现形式:每个表中的数据格式可为:顶点编号、顶点的度、依次列出与该顶点相邻的顶点编号。可用vector类型的数组来表示: vector< 阅读全文
posted @ 2017-10-21 15:47 zmlgo 阅读(292) 评论(0) 推荐(0)
摘要:数据结构既包括各数据存储的方式和彼此间的关系结构,又含有“添加”、“取出”等对数据的操作,同时也带有取出和添加数据时的规则。如队列和栈就是以数据抵达的先后顺序来形成这一规则的,但优先级队列则是以数据内的键值作为基准来判断谁先被取出。 二叉搜索树(按照左子节点、父节点、右子节点的顺序将键值由小到大排序 阅读全文
posted @ 2017-10-14 22:14 zmlgo 阅读(404) 评论(0) 推荐(0)
摘要:由计算机来处理数学或现实中的问题,本质在于如何对问题进行数学建模,也就是怎样将问题中含有的要素与相应数据结构中的项形成对应关系,以及将对问题求解的过程转化为对数据的操作组合。 而在计算机中,对现实问题数学建模,常用的方法是递推或递归的分析思路。将一个大的问题分割成小的局部问题,通过获得最小问题的解、 阅读全文
posted @ 2017-10-14 21:15 zmlgo 阅读(854) 评论(0) 推荐(0)