【算法充电初级】教程文章相关的互联网学习教程文章

模型包覆算法源码wrap curve to shape or mesh【图】

包覆,英文名为wrap,同投影(projection)不同。前者线条长度保持不变,后者可以是圆柱投影或锥型投影等,得到的曲线是会变形的。如下看图就可以有很明显的不同。本文提供了包覆的详细算法和实现代码,该算法可以将2d图形包覆到实体模型(TopoDS_Shape)或网格模型(如stl)上。开发工具C++、OpenCASCADE、CGAL。包覆 投影 包覆 ...

KMP算法心得【代码】

今天又看了一遍KMP,感觉真的懂了...就来这儿发一下心得吧.KMP算法其实就是暴力的改进版.让我们看看暴力的匹配.Original string: ababababcbbababababc Pattern string: abababc步骤:ababababcbbababababc abababc....中间一些步骤ababababcbbababababcabababc这里a和c匹配不了了,传统的作法会从第二个字符`b‘开始匹配.明显不行又跳出.即:ababababcbbababababca...再从第三个字符`a‘开始:ababababc...abababc现在匹配了.继续重复...

贪心算法(发工资)【代码】

发工资咯:)Problem : 430Time Limit : 1000msMemory Limit : 65536Kdescription作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位...

算法总结之 未排序正数数组中累加和为给定值的最长子数组长度【代码】【图】

例如 arr=[1,2,1,1,1] k=3累加和为 3的最长子数组为[1,1,1] 所以结果为3 思路方法: 两个指针 left 和right 初始值都是0 都在左边 sum 代表 子数组 left.....right的和 len 一直记录累加和为k的所有子数组中最大子数组的长度 根据 sum与k的比较结果决定 left 跟 right 哪一个移动!!!! package TT;publicclass Test70 {publicstaticint getMaxLength(int[] arr, int k){if(arr==null || arr.length==0 || k<...

算法练习:重叠区间个数

一、题目描述给定多个可能重叠的区间,找出重叠区间的个数。举例如下:输入:[1,5],[10,15],[5,10],[20,30]输出:2 说明:题意应该是找出重叠区间中区间的最大个数,当没有区间重叠时,重叠个数最大为1,比如输入为:[1,5],[10,15],则输出为1;输入为:[1,2],[2,3],[3,4],[4,5],则输出为2(重叠区间相互之间都要有交集);输入为:[1,7],[2,5],[3,4],[8,15],[9,17],[20,25],则输出为3。 二、题目分...

paxos 算法

现在通过一则故事来学习paxos的算法的流程(2阶段提交),有2个Client(老板,老板之间是竞争关系)和3个Acceptor(政府官员):现在需要对一项议题来进行paxos过程,议题是“A项目我要中标!”,这里的“我”指每个带着他的秘书Proposer的Client老板。Proposer当然听老板的话了,赶紧带着议题和现金去找Acceptor政府官员。作为政府官员,当然想谁给的钱多就把项目给谁。Proposer-1小姐带着现金同时找到了Acceptor-1~Acceptor-3官员,1与...

Manacher算法详解【代码】【图】

/*首先呢,手动@一下逸安dalao。前几天一是考试没时间,再就是这个算法我只是懂,没写过题所以不敢写一个专题博客。终于抽出时间写一下这个noip基本不会涉及的算法啦*/首先我们知道回文的定义:正反读都是一样的字符串叫做回文串。如:madam,lol,oppo,zz,甚至连单字符都可以被称为回文(串)。上面的例子可以看出,回文串可以分为两种:奇数回文和偶数回文。如果我们想知道以一个字符串的所有子串中,最长的回文串是多长,怎么...

最短路径-Dijkstra算法与Floyd算法【代码】【图】

一、最短路径  ①在非网图中,最短路径是指两顶点之间经历的边数最少的路径。 AE:1 ADE:2 ADCE:3 ABCE:3  ②在网图中,最短路径是指两顶点之间经历的边上权值之和最短的路径。 AE:100 ADE:90 ADCE:60 ABCE:70  ③单源点最短路径问题  问题描述:给定带权有向图G=(V, E)和源点v∈V,求从v到G中其余各顶点的最短路径。  应用实例——计算机网络传输的问题:怎样找到一种最经济的方式,从一台计算...

算法四:回溯和分支界定

算法四:回溯和分支界定 回溯:寻找问题的解的一种可靠的方法是首先列出所有候选解,然后依次检查每一个,在检查完:所有或部分候选解后,即可找到所需要的解。理论上,当候选解数量有限并且通过检查所有或部分候选解能够得到所需解时,上述方法是可行的。不过,在实际应用中,很少使用这种方法,因为候选解的数量通常都非常大(比如指数级,甚至是大数阶乘),即便采用最快的计算机也只能解决规模很小的问题。对候选解进行系统检查...

Reinforcement Learning Q-learning 算法学习-4

Q-learning 相关的资料 https://www.youtube.com/watch?v=V1eYniJ0Rnkgoogle deepmind 的Q-learning 算法打游戏的一个很酷的视频。请观看 1.http://www.pysnap.com/reinforcement-learning-in-python/ 2.http://www.nervanasys.com/demystifying-deep-reinforcement-learning/ 3.http://wanghaitao8118.blog.163.com/blog/static/13986977220153811210319/ 4.https://github.com/nivwusquorum/tensorflow-deepq 【开源:Tensorflo...

linux内核调度算法(1)--快速找到最高优先级进程【代码】

为什么要了解内核的调度策略呢?呵呵,因为它值得我们学习,不算是废话吧。内核调度程序很先进很强大,管理你的LINUX上跑的大量的乱七八糟的进程,同时还保持着对用户操作的高灵敏响应,如果可能,为什么不把这种思想放到自己的应用程序里呢?或者,有没有可能更好的实现自己的应用,使得操作系统能够以自己的意志来分配资源给自己的进程?带着这两个问题来看看KERNEL。首先回顾上我们开发应用程序,基本上就两种类型,1、IO消耗型...

读书笔记 -- 算法导论 (序言+第一部分)

什么是基础呢? 就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理等课程学好。对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序的性能等要有深层次的掌握。要编写出优秀的代码同样要扎实的基础,如果数据结构和算法学的不好,怎么对程序的性能进行优化,怎样从类库中选择合适的数据结构。如果不了解操作系统,怎样能了解这些开发工具的原理,它们都是基于操作系统的。不...

冒泡排序算法和选择排序算法【代码】【图】

这是最基本的两种排序算法,比它效率高的还有归并排序,堆排序,快速排序等算法,作为一个IT民工应该好好掌握。 冒泡排序和选择排序都有两层循环,下面逐一介绍: 冒泡排序: 1.外层循环,控制冒泡次数,起始从loop=1开始,结束标识是loop<length,循环length-1次(从数组的第二个数开始冒泡)。 2.内层循环,选出对应轮的最大数,即第K轮冒泡选出的是第N-k-1大的数,故循环从loop=0开始,结束标志loop<N-k,循环N-k次...

遗传算法【代码】

遗传算法 ( GA , Genetic Algorithm ) ,也称进化算法 。 遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。因此在介绍遗传算法前有必要简单的介绍生物进化知识。 一.进化论知识   作为遗传算法生物背景的介绍,下面内容了解即可:  种群(Population):生物的进化以群体的形式进行,这样的一个群体称为种群。  个体:组成种群的单个生物。  基因 ( Gene ) :一个遗传因子。   染色体 ( ...

php实现四种基本排序算法

排序数组:$arr(1,43,54,62,21,66,32,78,36,76,39); 用四种排序算法进行排序冒泡排序:(思路:对未排好序的数,从前往后两个数一次进行比较和调整,大的下沉,小的上升) $arr=array(1,43,54,62,21,66,32,78,36,76,39); function bubbleSort($arr) { $len=count($arr); //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if(...