![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
MinJinFan
https://github.com/minjinfan
展开
-
算法学习之狄克斯特拉算法
加权图在了解狄克斯特拉算法之前,先介绍一下加权图。如图,假设你要从起点出发到达终点,如果只考虑换乘少,即最短路径。那么可以使用广度优先搜索算法,该算法我之前简单的写过,链接点这里。但是,现在你要找出最快的路径,为此,可使用狄克斯特拉算法。图中,每个数字表示的是时间,单位分钟。这些数字成为权重(weight),带权重的图成为加权图 (weight graph),不带权重的图称为非加权...原创 2020-02-08 18:53:28 · 214 阅读 · 0 评论 -
算法学习之广度优先搜索
图和广度优先搜索的基本概念图模拟一组连接,根据连接的线段有方向和无方向分为有向图和无向图。图由节点和边组成。一个节点可能与众多节点直接相连,这样直接相连的节点称为邻居。而广度优先搜索,简称BFS,是从根节点开始,沿着树的宽度(广度)遍历树的节点,如果发现目标,则演算终止。所以,你需要建立一个人际关系图,其中有一度朋友关系,二度朋友关系等等,其中一度朋友关系大于二度朋友关系,依此类推...原创 2020-02-07 12:42:18 · 238 阅读 · 0 评论 -
算法学习之快速排序
首先先了解分而治之(divide and conquer, D&C)-- 一种著名的递归式问题解决方法找出基线条件,这种条件必须尽可能简单。 不断将问题分解(缩小问题规模),直到符合基线条件编写涉及数组的递归函数时,基线条件通常是数组为空或者只包含一个元素。快速排序C语言标准库中的函数qsort实现的就是快速排序,快速排序也使用了D&C。python代码:...原创 2020-02-06 16:39:57 · 178 阅读 · 1 评论 -
算法学习之散列表
散列函数先了解什么是散列函数,即:将输入映射到数字。它满足一些要求:它必须是一致的,即输入A得到的是1,那么每次输入A时,得到的都必须是1.如果不是这样,散列表将毫无用处。 它应将不同的输入映射到不同的数字。例如,如果一个散列函数不管输入是什么都返回1,它就不是一个好的散列函数。最理想的情况就是,将不同的输入映射到不同的数字。散列函数将输入映射位数字的用处:首先创建一个数组,数组中...原创 2020-02-06 11:39:44 · 206 阅读 · 0 评论 -
算法学习笔记之大O表示法、数组与链表
大O表示法程序的算法有好有坏,而运行时间和空间占有率是关键。一般使用大O表示法讨论运行时间,它指出了最糟糕情况下的运行时间。算法的速度指的并非是时间,而是操作数的增速; 讨论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加; 算法的运行时间用大O表示法表示; O(log n)比O(n)快,当需要搜索的元素越多时,前者比后者快的越多数组与链表使用数组意味...原创 2020-02-03 11:57:11 · 157 阅读 · 0 评论 -
算法学习之二分查找
比较与简单查找,二分查找算法的速度更快。例有一个数组,每次将数组最中间的数与要查找的数进行比较,如果小了,就将中间数作为数组下限,在比较;如果大了,就将中间数作为数组上限。#include "pch.h"#include <iostream>using namespace std;int binary_search(int list[], int length, int ...原创 2020-02-03 11:46:20 · 115 阅读 · 0 评论 -
用C++实现的三次样条插值
在写代码之前需要先了解什么是三次样条插值:什么是三次样条插值?所谓三次样条插值对于一个区间(a,b)将区间分成x0 = a < x1 ......xn-1 < b = xn 的n-1个区间,我们需要通过已知的n+1个点来模拟一个未知的函数,在三次样条插值中我们采用分段的方法来做这件事情。三次样条插值得到的分段函数保证一下条件成立,而这些条件也是用来求解每一段样条插值的条件...原创 2020-01-08 19:08:36 · 14144 阅读 · 5 评论 -
Visul Studio 安装 矩阵计算工具eigen
根据需求要添加新的库到VS中方法一:项目->属性->C/C++->附加包含目录:填写附加头文件所在目录 ,分号间隔多项项目->属性->链接器->附加库目录:填写附加依赖库所在目录分号间隔多项项目->属性->链接器(点前面的+展开)->输入->附加依赖项:填写附加依赖库的名字.lib空格间隔多项方法二:创建属性表,每...原创 2020-01-08 19:06:57 · 358 阅读 · 0 评论 -
eigen计算矩阵Ax=b
//计算Ax=b; Eigen::Matrix3d A; A<<1,1,1, 2,2,2, 3,3,3; Eigen::Matrix<double, 3, 1> b; b<<1,2,3; cout<<"行列式为:"<<A.determinant()<<end...原创 2020-01-08 18:53:45 · 1236 阅读 · 0 评论 -
MOM 学习二
UnifyGeoUnit()internal :: is_infinite_gnd = false;internal :: g_gause_mean = 0.0;int gause_num = 0;double gause_distance = 0;GenerateBaisViaElement定义一个 gnd_elem_idx_set 数组,并找到在 GND 上的 eleme...原创 2019-11-11 18:41:09 · 483 阅读 · 0 评论