算法学习
小济公
本人目前在读研究生,在做一些项目开发,在这里做一下自己学习过程中的笔记
展开
-
数据结构与算法学习---数据结构篇(图b)(默然回首,夯实基础)
一、有向图在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题,它和我们之前学习的无向图,最大的区别就在于连接是具有方向的,在代码的处理上也会有很大的不同。1.1 有向图的定义及相关术语定义:有向图是一副具有方向性的图,是由一组顶点和一组有方向的边组成的,每条方向的边都连着一对有序的顶点。出度:由某个顶点指出的边的个数称为该顶点的出度。入度:原创 2020-05-27 13:18:03 · 666 阅读 · 0 评论 -
数据结构与算法学习---数据结构篇(图a)(默然回首,夯实基础)
一、图的入门1.1 图的实际应用:现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用场景我们都可以用即将要学习的图这种数据结构去解决地图:我们生活中经常使用的地图,基本上是由城市以及连接城市的道路组成,如果我们把城市看做是一个一个的点,把道路看做是一条一条的连接,那么地图就是我们将要学习的图这种数据结构;电路图下面是一个我们生活中经常见到的集成电路板,它其实就是由一个一个触点组成,并把触点与触点之间通过线进行连接,这也是我们即将要学习的图这种数据结构的应用场景1.2 图的原创 2020-05-26 23:08:33 · 507 阅读 · 0 评论 -
数据结构与算法学习---数据结构篇(并查集)(默然回首,夯实基础)
一、并查集并查集是一种树型的数据结构 ,并查集可以高效地进行如下操作:查询元素p和元素q是否属于同一组合并元素p和元素q所在的组1.1 并查集结构并查集也是一种树型结构,但这棵树跟我们之前讲的二叉树、红黑树、B树等都不一样,这种树的要求比较简单:每个元素都唯一的对应一个结点;每一组数据中的多个元素都在同一颗树中;一个组中的数据对应的树和另外一个组中的数据对应的树之间没有任何联系;元素在树中并没有子父级关系的硬性要求;1.2 并查集API设计1.3 并查集的实现1.3.1 U原创 2020-05-26 22:06:40 · 658 阅读 · 0 评论 -
数据结构与算法学习---数据结构篇(树b)(默然回首,夯实基础)
一、平衡树之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕。例如我们依次往二叉查找树中插入9,8,7,6,5,4,3,2,1这9个数据,那么最终构造出来的树是长得下面这个样子:我们会发现,如果我们要查找1这个元素,查找的效率依旧会很低。效率低的原因在于这个树并不平衡,全部是向左边分支,如果我们有一种方法,能够不受插入数据的影响,让生成的树都像完全二叉树那样,那么即使在最坏情况下,查找的效率原创 2020-05-26 21:25:14 · 390 阅读 · 0 评论 -
数据结构与算法学习---数据结构篇(优先队列)(默然回首,夯实基础)
一、优先队列普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有优先级的,我们需要在这些计算机的任务中找出优先级最高的任务先执行,执行完毕后就需要把这个任务从队列中移除。普通的队列要完成这样的功能,需要每次遍历队列中的所有元素,比较并找出最大值,效率不是很高,这个时候,我们就可以使用一种特殊的队列来完成这种需求,优先队列。优先队列按照其作用不同,可以分为以下两种:最原创 2020-05-26 16:36:57 · 208 阅读 · 0 评论 -
数据结构与算法学习---数据结构篇(堆)(默然回首,夯实基础)
一、堆1.1 堆的定义堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。堆的特性:1.它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。2.它通常用数组来实现。具体方法就是将二叉树的结点按照层级顺序放入数组中,根结点在位置1,它的子结点在位置2和3,而子结点的子结点则分别在位置4,5,6和7,以此类推。如果一个结点的位置为k,则它的父结点的位置为[k/2],而它的两个子结点的位置原创 2020-05-26 15:47:41 · 235 阅读 · 0 评论 -
强化学习笔记---入门简介
机器学习可以分为3类:有监督学习,无监督学习,强化学习;强化学习可以解决什么问题?概括来说,强化学习所能解决的问题为连续决策问题,就是需要连续不断做出决策才能实现最终的目标的问题。强化学习基本框架代理(agent)执行动作对环境(enviroment)造成影响,代理没执行一次动作就会转移到下一状态,然互环境会反馈给代理新的状态(state)和奖励(reward);强化学习的三个特征:(...原创 2019-09-09 14:11:27 · 181 阅读 · 0 评论 -
强化学习算法---Q-learning
Q-learning 算法的步骤:<1> 给定参数lamda和奖励矩阵R<2>令Q[]为0<3> for each episode3.1 随机选择初始的状态s3.2 未达到目标状态,则执行以下几步:(1)在当前状态s的所有可能行为中选取一个行为a(2)按照Q(s,a)=R(s,a)+lamda*max{Q(s1,a1)},其中s1表示下一时刻的状态...原创 2019-09-09 15:21:50 · 487 阅读 · 0 评论