博客专栏  >  综合   >  有趣的算法

有趣的算法

介绍一些和生活中的知识,情感,行为有关的算法

关注
2 已关注
22篇博文
  • 用通俗易懂的方式告诉你什么是EM算法

    一、EM简介 EM(Expectation Mmaximization) 是一种迭代算法, 用于含隐变量(Latent Variable) 的概率模型参数的极大似然估计, 或极大后验概率估计 E...

    2018-02-03 19:39
    166
  • 简单易懂——Dijkstra算法讲解

    前言:相对于暴力简单的Floyd算法,Dijkstra算法更为有用且复杂度较为合理--O(N^2)。今天就为大家介绍一下这个算法。Dijkstra算法使用了广度优先搜索解决赋权有向图或者无向图的单源最...

    2018-02-18 00:22
    493
  • 有趣的算法(二):3分钟看懂快速排序

    排序算法千千万,只有快排的性能和优化后的泛化性质最好,在介绍快速排序前,先看看这张排序天梯图:什么是快速排序?快速排序是冒泡排序的改进版,也是最好的一种内排序,在很多面试题中都会出现,也是作为程序员必...

    2018-02-23 21:51
    128
  • 有趣的算法(三):最高效的快速排序分析与优化

    ——“随机化快速排序可以满足一个人一辈子的人品需求。”快速排序是一种很高效且有多种优化方法的排序算法,具体的介绍和实现在我的另一篇文章:三分钟看懂快速排序 之前只知道快速排序的平均时间复杂度为O(n×...

    2018-02-23 21:58
    106
  • 动态规划入门之硬币问题

    问题描述 动态规划算法的核心是:每一个子问题的状态和状态的转移方程。 状态是:dp[i] ,即凑够i元最少须要的硬币的个数 转移方程是:dp[i] = min(dp[i-...

    2018-02-04 20:34
    65
  • 动态规划入门之背包问题

    一、问题描述:有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和? 二、总体思路:根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是...

    2018-02-04 20:35
    46
  • 动态规划入门之最长公共子序列

    1.基本概念       首先需要科普一下,最长公共子序列(longest common sequence)和最长公共子串(longest common substring)不是一回事儿。什么是...

    2018-02-05 22:09
    60
  • 动态规划C语言实现之最长公共子序列(LCS)

    动态规划中,我曾对于01背包和硬币问题有过一些理解,今天参考了博客上其他同学的经验,完成了最长公共子序列LCS的代码实现。具体的算法内容请移步我的另一篇博文:动态规划入门之:最长公共字符串LCS 代...

    2018-02-06 23:09
    146
  • 贝叶斯分类与贝叶斯网络

    文章部分内容来自两位博主的深度好文,对于其中的一些精华进行了简单提要和理解,简化了部分内容 首先,复习一下条件独立性 事件间的条件独立(三个事件之间)条件弱于两个事件间的独立。 ...

    2017-12-24 21:53
    1262
  • Hessian矩阵正定与函数凹凸性的关系

    1. 从矩阵变换的角度首先半正定矩阵定义为: 其中X 是向量,M 是变换矩阵我们换一个思路看这个问题,矩阵变换中,代表对向量 X进行变换,我们假设变换后的向量为Y,记做。于是半正定矩阵可以写成:这个是...

    2017-12-25 19:15
    2733
  • 优化算法中的鞍点与梯度下降

    摘要:本文将讨论寻找凸路径( convex path )时可能会遇到的不同类型的临界点( critical points),特别是基于梯度下降的简单启发式学习方法,在很多情形下会使你在多项式时间内陷入...

    2017-12-25 19:44
    1013
  • 数据结构与算法(一):线性表、栈、树(二叉树,AVL树)、图

    数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。下面是自己整理的常用数据结构与算法相关内容,如有错误...

    2018-01-08 21:55
    248
  • 深入浅出BP神经网络(反向传播算法)

    反向传播算法(Backpropagation)是目前用来训练人工神经网络(Artificial Neural Network,ANN)的最常用且最有效的算法。其主要思想是: (1)将训练集数据输...

    2018-01-10 20:01
    173
  • 一文详解蒙特卡洛(Monte Carlo)法及其应用

    概述 蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。 它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时...

    2018-01-12 17:42
    1194
  • 判断一个单链表是否有环及环的链接点

    来看看经典面试题的解决方法:如何求解链表的环相关 1.判断单链表是否有环   使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如...

    2018-01-12 23:03
    85
  • 关于信息熵的简单理解

    信息是我们一直在谈论的东西,但信息这个概念本身依然比较抽象。在百度百科中的定义:信息,泛指人类社会传播的一切内容,指音讯、消息、通信系统传输和处理的对象。 但信息可不可以被量化,怎样量化?答案当...

    2018-01-16 20:36
    164
  • 吉布斯采样Gibbs Sampling与随机模拟

    为什么要用吉布斯采样 什么是sampling?  sampling就是以一定的概率分布,看发生什么事件。举一个例子。甲只能E:吃饭、学习、打球,时间T:上午、下午、晚上,天气W:晴朗、...

    2018-01-16 20:44
    160
  • 数据结构与算法(二):线性表、栈、树(二叉树,AVL树)、图

    三、树与二叉树 树型结构是一类非常重要的非线性数据结构,其中以树和二叉树最为常用。在介绍二叉树之前,我们先简单了解一下树的相关内容。 树 树 是由n(n>=1)个有限节点组成一个具有...

    2018-01-17 13:56
    126
  • 数据结构与算法:最短路径,拓扑排序的基本概念

    “相较于其它方式,我一直热衷于推崇围绕数据设计代码,我想这也是Git能够如此成功的一大原因[…]在我看来,区别程序员优劣的一大标准就在于他是否认为自己设计的代码还是数据结构更为重要。” —— Linu...

    2018-01-08 21:51
    157
  • 用最通俗易懂的语言告诉你什么是信息熵

    假设有个考试作弊团伙,需要连续不断地向外传递4选1单选题的答案。直接传递ABCD的ascii码的话,每个答案需要8个bit的二进制编码,从传输的角度,这显然有些浪费。信息论最初要解决的,就是数据压缩和...

    2018-01-16 20:41
    726
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部