- 博客(4)
- 收藏
- 关注
原创 动态规划(一)
基本概念在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分程若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。当然,各个阶段决策的选取不是任意确定的,它依赖于当前面临的状态,又印象以后的发展,当各个阶段决策确定后,就组成一个决策序列,因而也就确定了整个过程的一条活动路线,这种把一个问题看作是一个前后关联具有连庄结果的多阶段过程就称为多阶段决策过程,这种问题
2016-02-29 13:23:46 610
原创 C# List源码分析(二)
常用操作的复杂度分析Contains该方法是一个O(n)的方法,是根据顺序依次遍历整个列表的,观看源码,跟JAVA还是有不少分别的,在上一篇中就有发现,因为C#对Primitive类型是有处理的,所以跟JAVA代码略有不同// Contains returns true if the specified element is in the List. // It does a linear, O(n
2016-02-24 10:36:53 964
原创 KMP算法详解
说道KMP算法,一定要先指出问题所在之处了,问题如下: 已知一个字符串a,b 想找到在字符串a中b首次完整出现的位置。 听到这个问题,首先想到的就是朴素算法,挨个来进行匹配,然后找到对应的答案。朴素算法朴素算法很简单,就是挨着遍历,但是会有很多的重复计算,算法复杂度为O(mn) 代码如下:# 朴素算法 def algorithm1(src, target): for i in r
2016-02-06 11:38:53 919
原创 C# List源码分析(一)
事件原因,之前在公司写代码的时候,带我的师傅建议我对List的长度最好在初始化的时候进行优化,这样对GC更加友好,所以就有了这个文章,来理解下List 容量自适应的实现。 List 继承于IList,IReadOnlyList// C# 源码 public class List<T> : IList<T>, System.Collections.IList, IReadOnlyList<T> {
2016-02-01 16:58:16 6408
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人