酉鬼2333
码龄4年
关注
提问 私信
  • 博客:111,881
    111,881
    总访问量
  • 159
    原创
  • 1,161,239
    排名
  • 129
    粉丝
  • 0
    铁粉

个人简介:摆摆

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2021-03-06
博客简介:

weixin_55835175的博客

查看详细资料
个人成就
  • 获得86次点赞
  • 内容获得47次评论
  • 获得280次收藏
  • 代码片获得376次分享
创作历程
  • 36篇
    2022年
  • 123篇
    2021年
成就勋章
TA的专栏
  • 计算机组成原理
    1篇
  • 算法分析与设计
    8篇
  • 数据结构基础
    22篇
  • 算法与数据结构
    25篇
  • 问题解决
    17篇
  • 紫书后的进阶学习
    16篇
  • 紫书学习
    61篇
  • 深度学习
    6篇
兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
  • 人工智能
    opencvtensorflow聚类集成学习分类回归
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

第六章——分枝限界法

分枝限界法和回溯法一样,也是一种在问题的解空间树上搜可行解的穷举算法。其中“分枝”指的是“分枝限界法”搜索可行解采用的策略为广度优先搜索或实现方法和思路类似的代价优先搜索。广度优先搜索的概念和实现前面已经介绍过很多次了,这里不再做赘述;代价优先搜索的目的是以某种定义下的优先级,按照优先级从高到低的顺序处理所有的结点。(从低到高和从高到低本质上是一样的,这里以从高到低为例)。如果状态结点能够按照优先级不严格(可以相等)降低的顺序,在解空间树上按照结点高度从高到低,同高度结点从左到右或从右到左的排列,那我们可以
原创
发布博客 2022.06.09 ·
2054 阅读 ·
2 点赞 ·
2 评论 ·
11 收藏

第五章——回溯法

对于回溯法的概念,我们需要先从回溯法在实际解决问题中的表现来理解。书上称:回溯法实际上是一个类似穷举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现不满足求解条件时,就“回溯”(即回退),然后尝试别的可能。就我个人的角度而言,我不认为回溯法是一个类似于穷举的方法,而是针对于一些通过穷举法求解的问题:问题求解过程中的各个可能出现的状态作为结点,通过决策将两两结点连边构成一棵有向树,存在一个或多个我们想要求解的目标状态。为了得到我们的目标状态(或者是初始状态到目标状态的路径),我们采取深度优先遍历的策
原创
发布博客 2022.06.05 ·
1514 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

第四章——蛮力法

蛮力法概述蛮力法也称穷举法(枚举法)或暴力法,是一种简单的直接解决问题的方法,通常根据问题的描述和所涉及的概念定义,对问题所有可能的状态(结果)一一进行测试,直到找到解或将全部可能的状态都测试一遍为止。蛮力法的“力”指的是计算机的运算能力,蛮力法是基于计算机运算速度快的特性,减少人的思考而把工作都交给计算机的“懒惰”策略(这里的懒惰指的是人懒,不是算法中的懒惰方法),一般而言是最容易实现的方法。蛮力法的优点如下:1.逻辑简单清晰,根据逻辑编写的程序简单清晰。2.对于一些需要高正确性的重要问题,它产
原创
发布博客 2022.05.31 ·
7979 阅读 ·
6 点赞 ·
1 评论 ·
60 收藏

第三章——分治法

分治法概述分治法的设计思想分治算法的设计思想是将一个规模较大的问题分解成若干个规模较小的问题分开解决,然后将规模较小的问题的解合并成规模较大的问题的解,分解的过程我们称为“分”,求解和合并解的过程我们称为“治”。乍一看这不就是前面递归算法的一种特殊情况么?事实上分治法确实属于递归算法一类,比起一般的递归算法它有以下的特性:1.该问题可以分解为若干个规模较小的相似问题,且当规模缩小到一定的程度就可以容易地解决,即递归出口的诞生是自然的。2.该问题所分解出的各个子问题是相互之间独立的,即子问题之间不包
原创
发布博客 2022.05.25 ·
1764 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

第二章——递归

递归的定义,递归算法,递归模型在数学和计算机科学中,递归是指在在一个过程或函数的定义时出现调用本过程或本函数的成分。若在函数中调用函数自身或者在过程的子部分中调用子部分自身的内容,称之为直接递归,又称自递归。若不同的函数和子过程之间互相调用,则称之为间接递归,任何间接递归都可以等价地转换为直接递归(自递归)。如果一个递归过程或递归函数中,递归调用语句是最后一条执行语句,则称这种递归调用为尾递归。一个有趣且经典的介绍递归的例子如下:递归的定义:请查阅“递归的定义”。这个例子不仅很好的体现了递归的特
原创
发布博客 2022.05.21 ·
3111 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

第一章——STL

STL概述说到STL我们往往认为它是基于模板的,实现了很多数据结构及对应操作的容器库。从概念上像上面理解一样理解没有问题,从库的内部结构来看,STL主要由container(容器),algorithm(算法)和iterator(迭代器)三大部分构成。STL容器容器就是指给你在库的内部已经实现好,可以让你直接调用的基于模板的数据结构类型,常用的数据结构和相对应的头文件如下:数据结构说明实现头文件向量(vector)连续存储元素容器,底层数据结构为数组,支持快速随机访问
原创
发布博客 2022.05.12 ·
373 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

第一章——算法分析

算法分析第一章节算法的概念和特性,我们了解到算法除了普通程序需要满足的基本性质另外想要满足的性质有:正确性,高效率和低储存量需求,健壮性,可读性和可使用性。其中健壮性,可读性和可使用性可以通过我们不断地完善我们的代码和注释来进行提升。算法分析准确来说分析的是算法的正确性,效率和储存量需求。算法的正确性可以通过数学方法证明和数据集验证的方法去处理。我们这里的算法分析是分析算法占用计算机资源的情况,计算机资源主要包括时间和内存空间,所以算法分析的两个主要方面是分析算法的运行时间和占用内存情况。运行时间和
原创
发布博客 2022.05.10 ·
1454 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

第一章——算法

算法的概念和特性算法分析与设计这门课从字面意思上可以分为三个模块——算法,分析,设计,其中分析和设计是具体进行时的“手段”,算法则是对象,所以我们首先需要知道算法是什么?算法(Algorithm)是求解一系列问题的清晰指令(计算步骤),是指解题方案的准确而完整的描述。算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,将输入数据转换成输出结果。这个概念并不抽象,说简单点就是可以用清晰数学语言描述的解决问题的方法就是算法。算法显然不是凭空出现的,于是就有了根据问题设计算法的概
原创
发布博客 2022.05.08 ·
596 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

第一章——计算机系统概论

1.1 计算机的分类电子模拟计算机和电子数字计算机电子计算机从总体上分为,电子模拟计算机和电子数字计算机两类。电子模拟计算机:“模拟”就是相似的意思。模拟计算机的特点是数值(数据)由连续量,也就是电压来表示,就像计算尺用长度表示数值,时钟用表盘表示数值一样。控制方式是在电压盘上连线(物理式),计算方式为电压组合和测量值,运算过程也是连续的。电子数字计算机,它是在算盘的基础上发展起来的,是用数字0和1来表示数量的大小(数据)。数字计算机的主要特点是按位(二进制类)运算,并且不连续地(离散地)跳动计算。
原创
发布博客 2022.05.04 ·
1768 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

Lecture 24-25

绪论最后三章的内容联系前面的贪心算法主要介绍几类算法(问题,思想),这一章节介绍动态规划。和贪心一样,动态规划不是某个算法,而是一种解决问题的思路,我们在前面介绍过的算法(例如Bellman-ford算法)中就有很多用到这个算法思想的。事实上在重新讨论了贪心算法的整体思路后,我觉得应该按照介绍最短路算法那里的顺序介绍贪心和动态规划(先介绍动态规划再介绍贪心)。Dynamic programmingDynamic programming,也就是我们常说的DP,就是指动态规划,那什么叫做动态规划呢?
原创
发布博客 2022.04.26 ·
1235 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Lecture 18

绪论图的部分自最短路算法的三类算法介绍完毕之后就告一段落了,我们往回看Lecture 18。Lecture 18介绍的是算法思想中重要的一种思想——贪心思想,我当时认为先把图论部分的知识点介绍完全再介绍其他的知识点比较好,但是这个思想在Prim算法,Dijkstra算法(甚至于A*算法)等都有用到,不过课件上对贪心算法的概念介绍的不多,例子又比较抽象(没有直接体现出一个阶段到另一个阶段的扩展),再学习完上述的算法之后体会贪心思想我觉得也是很好的(个人觉得)。Definition关于贪心算法首先我们要
原创
发布博客 2022.04.23 ·
657 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Lecture 23

绪论前面我们介绍了解决单源结点最短路径问题的算法——Bellman-ford算法和Dijkstra算法,解决单个结点到单个结点最短路径问题的算法——A*算法。但如果我们需要求大量的单个结点到单个结点的最短路径,并且起点和终点并不集中于某一个结点,进行|V|次的Dijkstra算法或Bellman-ford算法和进行|V|2次的A*算法(这种方法的效率不如Floyd算法存疑)在稠密图(O(|E|)=O(|V|2))中的复杂度逼近O(|V|3log|V|)。我们这一章节介绍的Floyd算法能够在O(|V|
原创
发布博客 2022.04.20 ·
794 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Lecture 22

绪论前一章节,我们介绍了两种求解单源结点到其他所有结点最短路径(单源最短路径问题)的算法。但如果只是需要求解某一个结点到另一个结点的最短路径(或者求解少量的最短路径对),求解出单个结点到其他所有结点的最短路径就显得不那么必要(效率略低),我们需要设计出更适用于求解某一个结点到另一个结点最短路径的算法。BFS显然是求解某一个结点到另一个结点最短路径的一种算法,这一章节介绍的A*算法则是在静态网络中求解最短路径最有效(?)的直接搜索方法。Background && Idea课件里对A*
原创
发布博客 2022.04.20 ·
759 阅读 ·
0 点赞 ·
3 评论 ·
1 收藏

Lecture 21

绪论前几章节我们介绍了图中的一系列知识点——基础术语(有向,无向,边,顶点,度)和存储方式(邻接矩阵,邻接表),遍历结点的方式(宽度优先遍历和深度优先遍历),拓扑排序(我个人觉得应该将拓扑排序看作图遍历的一种方法)。这一章节我们讨论结点之间不同要求,不同情况下求最优路径的方式。BFS作为一种求单源结点到单源结点最短路径的方式,在其他情况求解最优路径的表现并不适用,同时对于求解单源结点到单源结点最短路径,也有在BFS的基础上优化的更好的算法。Shortest Path这里讨论的最优路径都是最短路径,
原创
发布博客 2022.04.15 ·
910 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

交通异常判断

绪论就是第一次项目结束的感想和代码。我负责的是对xml的读写已经数据的处理,由于C++xml读写的宝在我们编译器的环境发生了冲突,我自己写了一种xml读写的方式,判断的整体逻辑还是比较简单的,就是比较繁琐,还有调参的问题。代码#include<cstdlib> #include<iostream>#include<vector>#include<fstream>#include<cassert>#include<string
原创
发布博客 2022.04.07 ·
183 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Lecture 20

绪论我们前面介绍了图的遍历和最小生成树,这一章节介绍图中的另一个重要知识点——拓扑排序。有关拓扑排序,我们不应该仅限于了解拓扑排序的算法,还应该了解拓扑排序的背景(为了解决什么样的问题),拓扑排序有关的数学(图论)知识,算法的运行过程,算法的运行时,拓扑排序另外的应用。第十八章应该是贪心算法,但我个人认为应该先把图上的知识点先介绍完全,所以将顺序调换了一下。Motivation拓扑排序起源于现实中的工程(活动)问题:假设存在若干个工程(活动)希望完成,但是某些工程需要在另外一些工程完成的基础上才能
原创
发布博客 2022.04.03 ·
690 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Lecture 17-2

绪论上一章节介绍了图的遍历,这一章节开始介绍图中生成树,最小生成树的概念以及生成最小生成树的算法。Definition and Application首先还是要知道问题和算法涉及概念的定义是什么?Spanning Trees生成树从概念上来看其实一个合成词——一个图的生成(导出)子图中满足树状结构的图称为该图的生成树,例如下图中红色边组成的部分就是该图的生成树:Minimum Spanning Trees很显然生成树的情况不唯一,那么最小生成树的最小指的是什么最小呢?由于生成树的点集和原图
原创
发布博客 2022.03.26 ·
810 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Fibonacci Heaps

绪论Fibonacci Heaps和Complete Heaps一样都是优化版本的堆。Complete Heaps是通过完全二叉树的简单性质来避免堆出现糟糕的退化情况,实际上在一般(最优)情况下各操作的复杂度和一般堆是一样的。Fibonacci Heaps的优化结合了lazy操作(懒惰标记),散列的一些思想和Fibonacci数的数学性质,在树的结构上不要求一昧的维持平衡(可能也维持了,只是我没有理解),在操作上可以将union(合并),insert(插入),decrease-key(修改某个元素的ke
原创
发布博客 2022.03.24 ·
1994 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Lecture 17-1

绪论上一章节我们介绍了图的基本概念和存储方式,后面的章节对图论中简单的操作和算法依次进行介绍,首先要介绍的即是图的遍历,以及遍历的衍生应用。Graph Traversal图的遍历和树的遍历一样就是将所有的结点全部检查一遍,同样分为可以用递归和栈实现的基于深度的遍历和用队列实现的基于广度的遍历。区别在于,树状结构中结点到结点的路径都是唯一的,也就是说在搜索的过程中不会出现重复搜索的情况,而图中两个节点之间的路径很有可能不唯一,为了在不同分支避免重复搜索的情况,需要额外给每个结点定义一个哈希表或基于
原创
发布博客 2022.03.13 ·
1132 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Lecture 16-1

绪论10-15章节我们介绍了数据结构中重要的一部分——树的概念和一些较为重要的应用。从Lecture 16,我们开始介绍数据结构重要的另外一个部分——图。事实上,从图论的角度来看,树应该是隶属于图这部分知识的一个重要部分,树是特殊的一类图。但从很多功能的实现来看,由于树有根节点到各个结点的路径唯一和无环的性质,同样的功能在树结构实现起来可以看作图结构的简化,我个人觉得这是在介绍图的问题之前先介绍树的原因。16-1主要还是介绍图的基本概念·······介绍了好几遍了。Undirected Graph
原创
发布博客 2022.03.11 ·
449 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多