分类: 算法

5 篇文章

最短路径问题
在之前的文章写过两种搜索方式 深度优先搜索 and 广度优先搜索 然后用这两种搜索方式来解决了图的一些问题 这里学习几种新的算法 Floyd-Warshall 简单了解一下👇 介绍:Floyd-Warshall算法是有Floyd于1962年提出,其可以计算有向图中任意两点之间的最短路径,此算法利用动态规划的思想将计算的时间复杂度降低为 O(v^3)…
图的遍历
深度和广度优先是什么? 之前学习过深度和广度优先搜索 实际上深度和广度都是针对图的遍历而言的 什么是图? 请看下图,这是一个简单的有向图👇 下面是一个简单的无向图👇 简单的说,图就是由顶点和边组成的,在学离散数学的时候也涉及到了图论的相关知识 那么使用深度优先搜索来遍历上面这个无向图,得到的顺序就是相应的图中红字(时间戳 下面就这个无向图再来理解一…
深度与广度搜索
前言 在说搜索方式之前 先讲一个简单的问题:求数的全排列 比如说,123 的全排列就是:123、132、213、231、312、321 这很简单吧 全排列的个数就是这个数的位数的阶乘,即 123 的全排列的个数是 ( 3!=3×2×1) 假如要用 C 语言来写呢? 应该很快就能想到,3个for循环嘛 分别控制位上的数字不重复就行了 那么假如数字更大…
栈、队列、链表
队列 队列的概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表 队列的两端: 队尾:进行插入操作的一端称为队尾 队头:进行删除操作的一端称为队头 先举一个例子: 给出一段序列: 6 3 1 7 5 8 9 2 4 对这段序列进行以下操作:删除第一个数字,将第二个数字移到末尾,删除第三个数字,将第四个数字移到末尾……以此类推,直…
几个简单的排序
从软工毕业学长那里淘来一本《啊哈!算法》 然后跟着这本书学习学习,记录一下 桶排序 在生活中会遇到一些排序问题,比如站队列的时候要按身高排序、考试的名次要按分数排序、网上购物有时会按价格排序…… 对于一组很简单的数字,桶排序无疑是最快最简单的 “桶”的理解:一个一维数组,大小为输入数字的最大值+1,数组的每一个下标都是一个标签,默认每一个数组元素的…