算法
文章平均质量分 55
algorithm_lixuan
码农orz
展开
-
图解弗洛伊德算法
弗洛伊德算法与迪杰斯特拉算法的区别就是弗洛伊德算法可以求所有的点的最短路径但是弗洛伊德算法的复杂度是O(n^3) 阿杰算法是O(n^2) 弗洛伊德算法的两个矩阵第一个是邻接矩阵(是本图论的书就会有介绍)第二个是P矩阵解释一下P矩阵就是那第一行来举例子第一行v0-v8的值的意思就是从v0走到v8那么v0下一个就是v1对vij也中的数也是这个意思如果从vi走到vj那么v原创 2017-07-22 22:22:58 · 6381 阅读 · 0 评论 -
手写matlab的弗洛伊德算法的函数(注释很详细)
function [dist,mypath]=myfloyd(a,sb,db)%输入邻接矩阵a;元素a(i,j)——顶点i到j之间的直达距离,可以是有向的%sb起点的标号;db终点的标号%输出:dist——最短的距离%mypath——最短的路径%优点可以求出任意两点之间的最短路缺点就是慢n=size(a,1);path=zeros(n);for k=1:n f原创 2017-08-03 17:26:42 · 5417 阅读 · 0 评论 -
手写matlab的迪杰斯特拉(dijkstra)算法的函数(注释很详细)
function [mydistance,mypath]=mydijkstra(a,sb,db)%输入:a——邻接矩阵;a(i,j)——i到j之间的距离,可以是有向的%sb——起点的标号,db——终点的标号%输出:mydistance——最短路的距离,mypath——最短路径%初始化n=size(a,1); u=sb;parent(1:n)=0; visited(1:n)=原创 2017-08-03 20:59:51 · 15782 阅读 · 2 评论 -
手写matlab的prim最小生成树(注释很详细)
%a是邻接矩阵这里我就随便赋值啦%result 3*n的第一、二、三行分别表示最小生成树的边的起点、终点、权集合clear allclca=zeros(7);a(1,2)=50;a(1,3)=60;a(2,4)=65;a(2,5)=40;a(3,4)=52;a(3,7)=45;a(4,5)=50;a(4,6)=30;a(4,7)=42;a(5,6)=70;a原创 2017-08-04 09:49:42 · 6784 阅读 · 1 评论 -
手写matlab的Kruskal最小生成树(注释很详细)
%优点对于顶点多边少的稀疏图有效%核心算法就是通过边的权值从小到大排序然后去除环路来生成最小生成树 %[row col val]=find(a)表示返回非零元素值的行,列,元素值%a是邻接矩阵clc;clear all;a(1,[2 3])=[50 60];%这里面给出邻接矩阵的另一种输入方式a(2,[4 5])=[65 40];a(3,[4 7])=[52 45];原创 2017-08-04 13:24:12 · 5005 阅读 · 3 评论 -
手写matlab模拟退火算法
clc, clearsj0=load('sj.txt'); %加载100个目标的数据,数据按照表格中的位置保存在纯文本文件sj.txt中x=sj0(:,[1:2:8]);x=x(:);y=sj0(:,[2:2:8]);y=y(:);sj=[x y]; d1=[70,40]; sj=[d1;sj;d1]; sj=sj*pi/180; %角度化成弧度d=zeros(102原创 2018-02-04 19:41:20 · 1142 阅读 · 1 评论 -
数据清洗--python
1.1引言 对于处理大数据问题,首先就是要进行数据预处理,排除掉那些那些很离谱的数据,当然我们肯定不能一个一个用眼睛来找(容易累死),所以我们就要学会如何用程序来进行数据的预处理,我们常常用两种语言:matlab和python,这里我先介绍一下用python进行数据清洗。1.2准备 首先去官网安装python ,然后打开你的控制台,在里面输入pip install numpypip ...原创 2018-03-22 02:46:06 · 932 阅读 · 0 评论