算法
装大炮的自行车
做一个无聊人,写无聊的代码。
展开
-
一、算法_分治算法
分治算法分治算法介绍 二分搜索大整数乘法棋盘覆盖合并排序快速排序线性时间选择… 分治算法介绍:简单点理解就是分开处理,如果一个问题可以容易的解决,则直接解决,否则将其分解为规模较小的子问题去解决,子问题与原问题形式相同,递归子问题,然后将子问题的解合并。如问题一如果卖出黄金,求黄金最大收益: 天 0 1 2 3 4 5 6 7 8原创 2017-01-07 05:43:29 · 351 阅读 · 0 评论 -
五、算法_动态规划_背包01
动态规划:背包问题01位 问题:有一个m KG的背包和物品 {T1T_1、T2T_2、T3T_3、TnT_n},每件物品价格{P1P_1、P2P_2、P3P_3、PnP_n},现在要把所有最大价值的物品放进背包中,且每个物品只能放入一次(不能超出背包重量),其中所有的条件都是已知的,求最大价值;穷举法:using System;namespace 动态规划_背包穷举 { class原创 2017-01-13 09:26:22 · 398 阅读 · 0 评论 -
设计模式:策略模式
策略模式 策略模式 在框架方面与状态模式很相似,意图却略有不同。客户端程序可以选择这些不同的算法。或在某中情况下,由Content来为你选择最合适的算法。该模式的目的是使得这些算法之间互换、并提供一种选择最合适算法的方式。它可以相同的方式调用所有的算法。减少各种算法类与使用算法类之间的耦合namespace Assets.StrategyPattern{ /// <summary>抽原创 2017-04-03 17:01:53 · 255 阅读 · 0 评论 -
算法 Union-Find
Union-Find 动态连通性 动态连通性是计算机的一种数据结构,动态维护结构中相互链接的组信息。 通俗的说 : 就像朋友圈,在社交网络中,彼此熟悉的人与人之间组成的朋友圈,但是这个圈子是会逐渐扩大的,不一定是你扩大,有可能你的朋友认识了一个新的朋友,或者 “断袖” 了,这种变化是动态的,然而这个关系网是庞大的,连通的,这就是动态连通数据结构。 假设:我与用户A相识,...原创 2018-02-23 23:53:06 · 282 阅读 · 0 评论 -
KMP算法之Next数组——C#
这篇文章不解释什么是O(n)记法KMPkmp是一个两串字符串比较的算法,分别为P:模式串,S:文本串。我的文章一般都是废话少说,直接就进入主题。我们假设现在需要匹配如下: 传统的做法:逐一的遍历 S 串,再遍历 P 串, S[ i ] != P[ j ] (i=0,j=0),因为不相等,所以 i 会自增 1 (++),j 回溯 0,当 i = 7 发生匹配,...原创 2018-08-14 11:51:10 · 499 阅读 · 0 评论 -
KMP 算法结束——C#
KMP废话不多说,直接上代码 int _i = start_pos; int _j = 0; while (_j < P.Length && _i < S.Length) { if (_j == -1 || S[_i] == P[...原创 2018-08-14 11:59:45 · 216 阅读 · 0 评论