
算法层--Algorithm
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
路途…
Reading is a long investment.During this process, find the entertainment and enjoy life while treasure the present to compound interest.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Algorithm】NMS
NMS:Input: A list of Proposal boxes B, corresponding confidence scores S and overlap threshold N.Output: A list of filtered proposals D.Algorithm:Select the proposal with highest confidence score, remove it from B and add it to the final proposal list原创 2020-08-19 19:16:11 · 306 阅读 · 0 评论 -
【基本检索与周游方法】双连通分图和深度优先检索
待进一步了解: 复制于:https://wenku.baidu.com/view/98e89b18c5da50e2524d7fc0.html转载 2019-01-20 18:43:24 · 846 阅读 · 0 评论 -
【动态规划】电路布线
1、问题描述: 在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i)) 将上端接线柱i与下端接线柱π(i)相连,如下图。其中,π(i),1≤ i ≤n,是{1,2,…,n}的一个排列。导线(I, π(i))称为该电路板上的第i条连线。对于任何1 ≤ i ≤ j ≤n,第i条连线和第j条连线相交的充要条件是π(i)> π(j). ...转载 2019-01-20 18:42:20 · 3025 阅读 · 0 评论 -
【动态规划】流水作业调度问题与Johnson法则
转载:https://www.cnblogs.com/beautiful-code/p/5123084.html1、问题描述: n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机...转载 2019-01-20 18:44:46 · 3393 阅读 · 0 评论 -
【动态规划】01背包问题
一、问题描述:有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?二、总体思路:根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是否满足最优性原理、找大问题与小问题的递推关系式、填表、寻找解组成)找出01背包问题的最优解以及解组成,然后编写代码实现;三、动态规划的原理及过程: eg:number=4,capacity=8...转载 2019-01-20 18:42:11 · 1031 阅读 · 0 评论 -
动态规划解二维多重背包问题
问题 二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的最大值(背包容量)。问怎样选择物品可以得到最大的价值。设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i]。两种代价可付出的最大值(两种背包容量)分别为V和U。物品的价值为w[i]。#include <iostream>...转载 2019-01-20 18:42:33 · 1830 阅读 · 0 评论 -
Catalan数——卡特兰数
标准二维表问题问题描述:设n是一个正整数。2*n的标准二维表是由正整数1,2,…,2n组成的2*n数组,该数组的每行从左到右递增,每列从上到下递增。2*n的标准二维表全体记为tab(n)。例如,当n=3时,tab(3)二维表如下图所示。 1 2 3 ...转载 2019-01-20 18:43:03 · 1166 阅读 · 0 评论 -
【Algorithm】(数组)只出现一次的数
转载:https://www.cnblogs.com/AndyJee/p/4473436.html题目:1、给一数组,所有的数都出现了两次,只有一个数出现了一次,求这个数。2、给一数组,所有的数都出现了两次,只有两个数出现了一次, 求这两个数。思路:位运算1、将数组里所有的数都做异或操作,因为相同的数异或之后就等于0,所以结果就是只出现一次的那个数。2、同样将数组里...转载 2018-09-30 11:22:58 · 211 阅读 · 0 评论 -
插入排序
插入排序(Insertion Sort):适用于数目较少的元素排序伪代码(Pseudocode):例子(Example):符号(notation):时间复杂度(Running Time):源代码(Source Code):#include <iostream>using namespace std;//升序排序void Insert...转载 2018-09-30 10:53:06 · 175 阅读 · 0 评论 -
链表翻转
链表的翻转是程序员面试中出现频度最高的问题之一,常见的解决方法分为递归和迭代两种。最近在复习的时候,发现网上的资料都只告诉了怎么做,但是根本没有好好介绍两种方法的实现过程与原理。所以我觉得有必要好好的整理一篇博文,来帮忙大家一步步理解其中的实现细节。 我们知道迭代是从前往后依次处理,直到循环到链尾;而递归恰恰相反,首先一直迭代到链尾也就是递归基判断的准则,然后再逐层返回处理到开头。总结来说...转载 2018-09-30 10:50:12 · 183 阅读 · 0 评论 -
分治算法
分治法的原理 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。(来自度娘的搬运工) 简单的说,分治就是分而治之,把一个问题拆分成几个小问题,最后再汇总解决的办法。有两点需要记住:(1) 分治法基本思想是将一个规模为n...原创 2019-01-01 21:16:02 · 1490 阅读 · 0 评论 -
【动态规划】最优二叉搜索树问题
1、问题描速: 设 S={x1, x2, ···, xn} 是一个有序集合,且x1, x2, ···, xn表示有序集合的二叉搜索树利用二叉树的顶点存储有序集中的元素,而且具有性质:存储于每个顶点中的元素x 大于其左子树中任一个顶点中存储的元素,小于其右子树中任意顶点中存储的元素。二叉树中的叶顶点是形如(xi, xi+1) 的开区间。在表示S的二叉搜索树中搜索一个元素x,返回的结果...转载 2019-01-20 18:42:28 · 3043 阅读 · 0 评论 -
【回溯法】
【回溯法】 (1)描述:回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。 (2)原理: 回溯法在问题的解空间树中,按深度优先策略(大二编写的树遍历算法),从根结点出发搜索解空间树。算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。如果肯定不包含,则...转载 2019-01-20 18:43:13 · 575 阅读 · 0 评论 -
【Algorithm】种子填充算法
转载:https://www.cnblogs.com/icmzn/p/5065306.html【平面区域填充算法】是计算机图形学领域的一个很重要的算法,区域填充即给出一个区域的边界 (也可以是没有边界,只是给出指定颜色),要求将边界范围内的所有象素单元都修改成指定的颜色(也可能是图案填充)。区域填充中最常用的是多边形填色,本文讨论种子填充算法(Seed Filling)如果要填充的区域是以图像...转载 2019-06-13 19:32:33 · 18614 阅读 · 2 评论 -
【Algorithm】LinearSelect
https://en.wikipedia.org/wiki/Median_of_medianshttp://www.cs.princeton.edu/~wayne/cs423/lectures/selection-4up.pdf【practice demo】import java.io.FileNotFoundException;import java.util.Sc...原创 2019-05-07 23:25:11 · 776 阅读 · 0 评论 -
【动态规划】图像压缩问题
//3d7 动态规划 图像压缩问题#include "stdafx.h"#include <iostream> using namespace std; const int N = 7; int length(int i);void Compress(int n,int p[],int s[],int l[],int b[]);void Tracebace(i...转载 2019-01-20 18:42:02 · 1795 阅读 · 1 评论 -
【动态规划】多边形游戏
具体介绍见:https://blog.youkuaiyun.com/qq_32767041/article/details/80631704转载 2018-10-14 10:14:16 · 714 阅读 · 0 评论 -
AC多模式匹配
Trie树概述 Trie树,又称字典树、前缀树、单词查找树、键树,是一种多叉树形结构,是一种哈希树的变种。Trie这个术语来自于retrieval,发音为/tri:/ “tree”,也有人读为/traɪ/ “try”。Trie树典型应用是用于快速检索(最长前缀匹配),统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计,搜索提示等场景。它的优点是最大限度地减少无谓的字符串比...转载 2018-05-16 16:10:08 · 513 阅读 · 0 评论 -
【ML算法】向量的点乘与叉乘的几何意义
向量的点乘:a * b公式:a * b = |a| * |b| * cosθ 点乘又叫向量的内积、数量积,是一个向量和它在另一个向量上的投影的长度的乘积;是标量。 点乘反映着两个向量的“相似度”,两个向量越“相似”,它们的点乘越大。向量的叉乘:a ∧ ba ∧ b = |a| * |b| * sinθ 向量积被定义为: 模长:(在这里θ表示两向量之间的夹角(共起点的前提下)(0...转载 2018-05-15 14:56:35 · 7010 阅读 · 0 评论 -
热度算法,基于内容,用户个性化推荐
1. 算法的发展阶段个性化推荐不是产品首次发布时就能带的,无论是基于用户行为的个性化,还是基于内容相似度的个性化,都建立在大量的用户数和内容的基础上。产品发布之初,一般两边的数据都有残缺,因此个性化推荐也无法开展。所以在产品发展的初期,推荐内容一般采用更加聚合的“热度算法”,顾名思义就是把热点的内容优先推荐给用户。虽然无法做到基于兴趣和习惯为每一个用户做到精准化的推荐,但能覆盖到大部分的内容需求,...转载 2018-04-29 11:37:29 · 19462 阅读 · 0 评论 -
【ML算法】马尔科夫链
文档介绍:https://download.youkuaiyun.com/download/liudongdong19/10420151一、马尔可夫链1、马尔可夫链设XtXt表示随机变量XX在离散时间tt时刻的取值。若该变量随时间变化的转移概率仅仅依赖于它的当前取值,即 P(Xt+1=sj∣X0=s0,X1=s1,⋯,Xt=si)=P(Xt+1=sj∣Xt=si)P(Xt+1=sj∣X0=...转载 2018-04-29 11:16:33 · 14655 阅读 · 0 评论 -
【ML算法】贝叶斯滤波
1. 贝叶斯概率公式(后验概率): p(x|y)=p(y|x)p(x)p(y)=ηp(y|x)p(x)当条件概率涉及到的变量比较多,上式分母就会变得比较复杂,为表示方便这里定义ηη为归一化参数。 相似的,我们可以考虑p(x|y,z)p(x|y,z) 的条件概率,这里可以看成在zz发生的条件下,将概率p(x|y)p(x|y)进行贝叶斯公式展开,代入二元贝叶斯公式得到:p(x|y,z)=p...转载 2018-05-04 10:48:37 · 3492 阅读 · 0 评论 -
【ML算法】DWT时序匹配
转载地址:http://www.cnphp6.com/archives/60574论文介绍:https://cs.fit.edu/~pkc/papers/tdm04.pdf前言动态时间规整(Dynamic Time Warping,DTW)是孤立词识别的早期技术,梳理一下,主要包括: 1)孤立词识别操作步骤; 2)DTW原理;内容基本就是两个博文的整合,最后一并给出链...转载 2018-05-17 00:14:06 · 6981 阅读 · 1 评论 -
【算法】KMP模式匹配
1.KMP算法1.1 定义 Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。 下面先直接给出KMP的算法流程(如果感到一点点不适,没关系,坚持下...转载 2018-05-16 16:14:53 · 6338 阅读 · 2 评论 -
【机器视觉】灰度的图像模式匹配算法,将一维变为二维...
简介: 本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD)、绝对误差和算法(SAD)、误差平方和算法(SSD)、平均误差平方和算法(MSD)、归一化积相关算法(NCC)、序贯相似性算法(SSDA)。下面依次对其进行讲解。MAD算法介绍 平均绝对差算法(Mean Absolute Differences,简称MAD算法),它是Leese在197...转载 2018-05-16 16:16:26 · 3218 阅读 · 0 评论 -
PDR算法
步行者航位推算(Pedestrian Dead Reckoning,PDR)主要是在无信标环境下使用惯性测量单元(Inertial Measurement Unit,IMU)感知人员在行进过程中的加速度、角速度、磁力和压力等数据,并利用这些数据对行进人员进行步长与方向的推算,从而达到对人员进行定位跟踪的目的,其中主要涉及的过程有步态检测、步长和方向计算。PDR原理图:PDR初始条件:已知初始位置S...转载 2018-05-16 16:28:46 · 15795 阅读 · 4 评论 -
【动态规划】凸多边形最优三角剖分
(1)凸多边形的三角剖分:将凸多边形分割成互不相交的三角形的弦的集合T。(2)最优剖分:给定凸多边形P,以及定义在由多边形的边和弦组成的三角形上的权函数w。要求确定该凸多边形的三角剖分,使得该三角剖分中诸三角形上权之和为最小。 凸多边形三角剖分如下图所示: 2、最优子结构性质: 若凸(n+1)边形P={V0,V1……Vn}的最优三角剖分T包含三角形...转载 2018-10-14 09:54:47 · 745 阅读 · 0 评论 -
矩阵连乘问题
问题描述:矩阵连乘问题是通过给矩阵连乘时加括号,使得总的计算量最小。考虑3个矩阵相乘的例子, A1,A2,A3,假设这3个矩阵的维数分别为 10x100,100x50,5x50若按照((A1A2)A3)方式计算,需要的数乘次数为10x100x5+10x5x50 = 7500若按照(A1(A2A3))方式计算,需要的数乘次数为100x5x50+10x100x50 =75000问题分...转载 2019-01-20 18:45:19 · 12633 阅读 · 2 评论 -
【动态规划】套汇问题(Floyd算法)
套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币。例如,假定1 美元可以买0.7 英镑,1 英镑可以买9.5 法郎,且1 法郎可以买到0.16美元。通过货币兑换,一个商人可以从1 美元开始买入,得到0.7×9.5×0.16=1.064美元,从而获得6.4%的利润。 给定n 种货币c1 ,c2 ,... ,cn的有关兑换率,试设计一个有效算法,用以确定是否存在套汇的可能性...转载 2018-10-13 10:44:20 · 4696 阅读 · 0 评论 -
贪心算法案例
最优合并问题(Huffman 编码)定义具有排序功能的数据结构给定k 个排好序的序列s1 , s2,……, sk , 用2 路合并算法将这k 个序列合并成一个序列。假设所采用的2 路合并算法合并2 个长度分别为m和n的序列需要m + n -1次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。 为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次...原创 2019-01-20 18:42:55 · 1402 阅读 · 0 评论 -
拟阵及其应用
参考:https://wenku.baidu.com/view/4f952c76c8d376eeafaa312e.html拟阵(matroid): 加权拟阵: 拟阵的贪心算法的正确性也是从greedy choice property和optimal substruture这两个方面来证明的。下面我们来分别证明:greedy choice property引...原创 2018-10-11 18:37:40 · 1400 阅读 · 0 评论 -
最长重叠线段或区间
题目:X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。思路:1、暴力计算依次计算两两线段之间的重叠长度,但复杂度太高 (ps:可能我的第一反应就是暴力计算,以后多想想)2...转载 2018-10-01 15:54:16 · 1242 阅读 · 0 评论