![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法入门
seineo
CS路上不停歇
展开
-
Coursera Algorithms笔记与作业
具体见:Github原创 2020-09-30 20:22:50 · 648 阅读 · 0 评论 -
图论:最大流最小割详解
最大流与最小割是十分重要且应用广泛的内容,本文用“水流”与“水管”类比,先讨论最大流问题,然后再说明最大流与最小割的特殊关系,我们还将讨论一些实际中会使用的相关算法及其实现。见:图论:最大流最小割详解...原创 2020-06-27 21:36:11 · 958 阅读 · 0 评论 -
图论最常用的最短路算法详解及实现
超详细解释最短路算法:BFS、Dijkstra、A*、Bellman-Ford及Floyd-Warshall,并给出实现。见:图论:常用的最短路算法详解原创 2020-06-23 13:26:30 · 396 阅读 · 0 评论 -
程序设计实践:基础数据结构与算法
算法和数据结构是程序的基石,几乎每一个程序都需要它们,但绝大多数程序都不需要发明新的算法和数据结构。本章基本是围绕着对HTML中name-value键值对的处理,阐述了满足于绝大多数程序需求的基本算法和数据结构,包括搜索、排序、链表、树和哈希表等。笔记和发散讨论见:Algorithms and Data Structures。欢迎在这里提出问题、给出建议。...原创 2020-06-16 09:35:09 · 245 阅读 · 0 评论 -
啊哈算法第六章 最短路径
通过之前的学习,我们知道可以使用DFS或BFS求出两点间的最短路径。还有什么别的办法呢?一、Floyd-Warshall算法我们知道,要想让两点的路程变短,我们需要引入第三个点(k),并通过这个点a->k->b,才有可以缩短原来只从a->b的路程。而每个点都有可能使另外两个点之间的路程变短,这就得出了Floyd-Warshall算法。主要思想:点。最初只允许从1号...原创 2019-05-23 17:28:07 · 179 阅读 · 0 评论 -
啊哈算法第五章 图的遍历
一、图的一些概念简单来说,图是由顶点和连接这些顶点的边构成的集合。遍历就是指把图的每一个顶点都访问一次,用一个数表示各个顶点被第几个访问到,这个数就叫时间戳。图的邻接矩阵存储法:关联于同一条边的两个结点称为邻接点。关联于同一个结点的两条边称为邻接边。用一个二维数组储存一个图,第i行第j列表示的就是顶点i到顶点j是否有边(i,j>0),1表示有边,∞表示无边,而自己到自己(i=...原创 2019-04-27 15:03:25 · 284 阅读 · 0 评论 -
啊哈算法第四章 万能的搜索
从这一章开始就真的步入对我而言全新的算法世界了(因为排序、枚举在上学期还是接触过的,而栈、队列在这学期我看的C++Primer和老师教的Java课里也有所涉及)一、深度优先搜索(Depth First Search)首先作者用上章遗留的全排列问题作为引例为我们介绍了DFS是啥东西。题目1:输入一个数n 请输出1~n的全排列。当然我们可以用上一章的枚举来做,并且用一个book[10]...原创 2019-04-22 17:01:12 · 409 阅读 · 0 评论 -
选择排序、插入排序与冒泡排序
选择排序:#include<iostream>using namespace std;int main(){ constexpr int SIZE = 10; int a[SIZE] = { 1,4,3,2,6,7,5,9,10,8 }; //选择排序 for (int i = 0; i != SIZE - 1; ++i) { for (int j = i ...原创 2019-02-09 21:08:51 · 115 阅读 · 0 评论 -
枚举(算法基础)(含熄灯问题)
枚举是基于逐个尝试答案的一种解题策略。例题一:完美立方#include<iostream>using namespace std;int main(){ int n; cin >> n; for (int a = 2; a <= n; ++a) { for (int b = 2; b != a; ++b) { for (int...原创 2019-02-26 16:53:53 · 445 阅读 · 0 评论 -
啊哈算法第二章 栈、队列、链表
一、队列、栈作者在书中用数组来实现队列和栈,让我们更深刻地了解了底层实现。而这里我就直接放用STL里的queue和stack实现书中题目的代码了。题目:纸牌游戏。两人比赛,A,B,每人最开始分得6张手牌,手牌大小为从1到9A先出牌,B后出牌,若出牌在桌面上存在,在出牌人获得两张相同牌中间的所有牌(包括两张相同牌),放入出牌人手中。最后谁手中无牌判为负C++:#incl...原创 2019-04-20 17:00:02 · 247 阅读 · 0 评论