算法

博弈算法实例详解

博弈算法实例详解1.简介博弈博弈/博弈论,又称为对策论(GameTheory)、赛局理论等,既是现代数学的一个新分支,也是运筹学的一个重要学科。博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现……

动态规划DP算法详解

动态规划DP算法详解1.简介动态规划(dynamicprogramming)是运筹学的一个分支,是求解决策过程(decisionprocess)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研……

动态规划概念和实例讲解

动态规划概念和实例讲解动态规划(Dynamicprogramming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于……

DFS求有向图(无向图)两点间路径

DFS求有向图(无向图)两点间路径本文会围绕算法中DFS求有向图或无向图两点间所有路径,先讲解DFS以及有向图或无向图的意思。有向图在图中的边是有方向的,表现出来就是有个箭头指示方向,节点只能单向通信或传递消息,相当于单行道,无向图边……

位运算的应用

位运算的应用从现代计算机中所有的数据二进制的形式存储在设备中。即0、1两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即将符号位共同参与运算的运算。一、位运算概述我们知道,计算机中的数在内存……

桶排序算法C/C++代码图文讲解

桶排序算法C/C++代码图文讲解桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定,这篇文章就带大家认识一下桶排序。一、桶排序桶排序(Bucketsort)或所谓的箱排序,是一个排序算法,工作的……

什么是Manacher算法?

什么是Manacher算法?本篇讲解manacher算法,大家在学习之前,提前了解一下两个字符串相算法——kmp和拓展kmp,这些算法都是字符串算法。相对于前面介绍的两个算法,Manacher算法的应用范……

动态查找-二叉排序树介绍与实现

动态查找-二叉排序树介绍与实现1.算法简介二叉排序树(BinarySortTree),又称二叉查找树(BinarySearchTree),亦称二叉搜索树。该树属于一种输入数据就默认产生一种顺序的数据结构,这不像本章前面的内容所描述……

解析字符串哈希(Hash)

解析字符串哈希(Hash)说到什么是字符串哈希(Hash)?很多人都会疑惑,我们可以这么理解,定义一个把字符串映射到整数的函数f,这个f称为是Hash函数。而我们希望这个函数f可以方便地帮我们判断两个字符串是否相等。(1)Ha……

计数排序算法C/C++代码图文讲解

计数排序算法C/C++代码图文讲解计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。(1)算法的步骤:1.找出待排序的数组中最大和最小的元素……