算法之道
Shijia Yin
这个作者很懒,什么都没留下…
展开
-
【每天一点算法】Dijkstra最短路径算法
我是在运筹学这门课里面接触到这个算法的,先是在书上大概理解了这种方法的人脑思维方式。但是我坚信,运用机器实现我们学到的每一个算法将会帮助我们更好地理解我们所处的信息化时代,下面就开始吧。一、Dijkstra算法概述Dijkstra算法是一个单向路径最短算法,也就是在一个图中不能存在负权边,该算法通过外散的形式逐步确定每一个节点到起始结点的最短路径。这种算法的具体解释在数据结构与算法、运筹学、图...原创 2019-05-13 18:34:05 · 683 阅读 · 0 评论 -
【每天一点算法】冒泡排序
今天我的内心受到了打击,原来我是个彻头彻尾的垃圾,一个冒泡排序写了我三个小时。以后要经常找点算法的题目来练练手。(蓝色是忧伤的颜色原创 2019-05-07 21:10:47 · 203 阅读 · 1 评论 -
【每天一点算法】基于梯度下降的多变量线性回归(我的第一个机器学习算法)
概述学习了吴恩达老师的机器学习算法的前六章后,我初步认识了机器学习算法,总的来说就是最小化偏差,最小化偏差有多种方法,在课程中使用的是梯度下降法和正规方程法(最小二乘法),下面我就利用我学习到的知识来进行一次简单的学习算法设计算法设计目标与所用语言算法设计的目标是用一个二次假设函数来拟合一个带噪声的二次函数所用语言是Octave(类似于MATLAB)具体设计步骤一、准备数据集x=0:...原创 2019-05-20 21:21:55 · 367 阅读 · 0 评论 -
【每天一点算法】Floyd最短路径算法
Floyd最短路径算法是基于这样一个事实:从viv_ivi到vjv_jvj的最短路径总是先从v1v_1v1沿着一条路到某一点viv_ivi,再沿(vi, vj)(v_i,\ v_j)(vi, vj)到vjv_jvj。而从v1v_1v1到viv_ivi这条路必然是从v1v_1v1到viv_ivi的最短路。下面我们来进行具体的代码设计,算法设计的基本思想是:...原创 2019-05-21 20:03:55 · 209 阅读 · 0 评论 -
【每天一点算法】模糊控制器的设计
概述模糊控制器是以模糊集合论、模糊推理、模糊语言变量为基础的一种智能控制方法。关于这三个基础方面的知识,不知道的,自己去补充。正文模糊控制器的设计主要分为如下步骤:1、模糊控制器结构的确定:几个输出变量?几个输出变量?分别是什么变量?2、定义输入输出变量模糊集:确定各个变量的论语、语言值、各个模糊集的隶属函数。3、用自然语言表示模糊规则:用IF A THEN B的结构来表示。4、构建...原创 2019-05-17 09:33:16 · 12415 阅读 · 1 评论 -
【每天一点算法】k-means聚类算法
该聚类算法的设计分为三大步:数据集准备;聚类中心设计与初始化;迭代训练;其中迭代训练又分为两大步:聚类;聚类中心更新下面是具体代码及其详解(实现语言为MATLAB或者Octave)注释为C/C++风格,复制的时候要改成matlab风格,或者直接删除//prepare the datax = [1 2 2 2 2 2 102 103 102 104 105 104 203 204 203 2...原创 2019-05-26 11:44:58 · 151 阅读 · 0 评论 -
【每天一点算法】递归算法设计总结
今天被递归算法困扰了好久,感觉这真是个很神奇的算法,可以用那么简短的几行代码处理那么复杂的问题,下面就对其进行总结。首先我们要来看几个经典的例子,这里只是介绍几个很简单的例子来简单理解,因为我觉得看博客的你一般都只是想快速了解,不要求深入原创 2019-05-17 22:01:12 · 270 阅读 · 0 评论 -
常见排序算法
插入排序的基本思想:1、从第一个元素开始,该元素可以认为已经被排序2、取出下一个元素,在已经排序的元素序列中从后向前扫描3、如果该元素(已排序)大于新元素,将该元素移到下一位置4、重复步骤3,直到找到已排序的元素小于或者等于新元素的位置5、将新元素插入到该位置后6、 重复步骤2~5void insertion_sort(int arr[], int len){ int...原创 2019-06-15 22:40:19 · 111 阅读 · 0 评论