算法

简述最小树形图

简述最小树形图一、什么是最小树形图?就是指有向图上的最小生成树,英文是DirectedMinimumSpanningTree。常用的算法是朱刘算法(也称Edmonds算法),可以在O(nm)时间内解决最小树形图问题……

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

希尔排序算法C/C++代码图文讲解希尔排序又称“缩小增量排序”,是插入排序的一种。直接插人排序,当待排序的记录个数较少且待排序序列的关键字基本有序时,效率较高。希尔排序基于以上两点,从“减少记录个数……

前缀和理解与应用

前缀和理解与应用本篇内容主要学习前缀和与其应用。一、前缀和概念前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的逆运算。合理的使用前缀和与差分,可以将某些复杂的问题简单化。简单来……

分块查找算法介绍与实现

分块查找算法介绍与实现1.算法简介分块查找是折半查找和顺序查找的一种改进方法,分块查找由于只要求索引表是有序的,对块内节点没有排序要求,因此特别适合于节点动态变化的情况,其核心有二索引表,二是分块处理。分块查找要求把一个大……

字符串的KMP算法详解及C/C++代码实现

字符串的KMP算法详解及C/C++代码实现1.原由紧接上文,我们知道了暴力匹配的算法在时间运行上的缺陷,假设字符串T的长度为n,字符串P的长度为m,则整个算法的时间复杂度为O(n*m),而对于一个复杂的现实情况而言n>&……

什么是单调栈?

什么是单调栈?什么是单调栈?有什么好处?就是栈中元素,按递增顺序或者递减顺序排列的时候,单调栈的最大好处就是时间复杂度是线性的,每个元素遍历一次!单调栈是一种数据结构,它里边存放的数据具有单调性,每个元素都只进栈一……

什么是记忆化搜索?

什么是记忆化搜索?首先大家要知道,记忆化搜索是动态规划的入门。什么是记忆化搜索?搜索的低效在于没有能够很好地处理重叠子问题;动态规划虽然比较好地处理了重叠子问题,但是在有些拓扑关系比较复杂的题目面前,又显得无奈。记忆化……

算法基础

算法基础1.算法的特性1)输入输出算法具有零个或者多个输入,同时,算法具有至少一个的输出。对于在屏幕上打印”HelloWorld”一样,你可以不需要有任何的输入,直接输出得到结果即可,……

简述随机化算法

简述随机化算法本篇将主要讲解随机化算法,在正式进入主题之前,我们先谈谈什么是随机化?随机化是一种可能影响试验结果的无关或可能在试验过程中变化,从而影响到最终结果。随机化算法,是在算法中使用了随机函数,且随机函数的返……

动态规划DP算法详解

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