数据结构与算法
赵同学
欢迎浏览文章,共同交流
展开
-
通俗算法讲解之图最短路径——Dijkstra算法
Dijkstra算法计算单源有向正权值图最短路径计算原创 2016-10-27 19:05:48 · 5709 阅读 · 0 评论 -
迭代最近点算法流程详解(ICP算法)
迭代最近点(Iterative Closest Points, ICP)算法包括两部分:对应点搜索和位姿求解。它的目的是寻求点集之间的匹配关系,求解的结果是两点集之间的平移及旋转量。假设M、P是两个点集,P为待配准点集,M为基准数据点集(可以理解为两个不同坐标系中的点集),其基本原理如下:1、搜索最近点:取P中一点p(i),在M中找出距离p(i)最近的m(i),则(pi,mi)就构成了一组对应原创 2015-10-11 19:42:22 · 24068 阅读 · 8 评论 -
线性表、链表、栈、队列的关系
程序员在编程实战操作面前有两个拦路虎,第一个是用递归的思想去解决问题,第二个是数据结构与算法的应用。对于递归,由于其神奇的薄面纱总是然我们觉得难以理解,而大多数递归解法还是需要承担一定的计算负担的,因此我觉得能理解其思想与用法固然好,但是实在无法理解也只能慢慢适应。而对于第二个难题,数据结构与算法基本上每一个程序员都需要了解,因为,算法是解答一个问题的基本逻辑,如果你可以证明这个逻辑是正确的,那接下来的问题就是应该采用什么样的数据结构来保证你的程序能有最高的执行效率,即比较好的时间复杂性,同样内存空间消耗也原创 2017-05-16 09:14:31 · 10959 阅读 · 0 评论 -
桶排序与基数排序
任何算法首先始于思想(逻辑),只有思想(逻辑)是对的,才需要考虑优化算法的时间消耗和内存消耗。原创 2017-06-01 08:57:43 · 1358 阅读 · 0 评论 -
C++栈的应用——后缀表达式求值、中缀表达式到后缀表达式的转换
一、前言 通常我们把栈归为一种基本的数据结构,同时它也是一种线性表结构,也就是说你要自己实现一个栈的数据结构,既可以用数组实现,也可以用链表实现。栈最主要的特点就是“先进后出”,因为栈只有一个入口和出口。 二、实现栈结构 根据栈的先进后出的特点,很容易设置栈结构的接口:入栈、出栈、判空、size()等,熟悉数据库的同学都知道数据库无非就是四种操作:增、删、改、查,其实对...原创 2017-06-03 09:06:49 · 19588 阅读 · 3 评论 -
二叉树应用——后缀表达式构建表达式树
针对前一篇博文后缀表达式求值、中缀表达式到后缀表达式的转换,已经可以实现中缀表达式到后缀表达式的转换,这里再介绍根据后缀表达式构建表达式树,那我们就能够从这两种常用类型的输入表达式(中缀和后缀)生成表达式树。原创 2017-09-05 19:35:32 · 21368 阅读 · 2 评论 -
图数据结构的相关定义
一个图(Graph)G=(V,E)是由顶点集合(V)和边集合(E)组成;边:图中的一条边用点对(a,b)表示;图分为有向图和无向图;有向图:即边(a,b)是有方向的,可以是a->b,也可以是b->a,这是两条不同的边;无向图:即边(a,b)是无方向的,a->b和b->a是同一条边;边权值:即指边上的权值属性,如果一个表示多个城市之间道路联通的图,那么两个城市之间的距离就可以作为原创 2018-01-03 11:14:42 · 771 阅读 · 0 评论 -
无权二分图的最大匹配求解——匈牙利算法求解
基于匈牙利算的二分图最大匹配只能找到全局的最大匹配数,这个最大匹配数是一定的,即使有多种最大匹配情况,但所得的最大匹配关系有可能并不是唯一的。原创 2018-01-03 21:11:55 · 2706 阅读 · 1 评论