- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 mapReduce简单示例
参考资料 1. http://my.oschina.net/leejun2005/blog/82587 2. http://blog.csdn.net/xubcing/article/details/7832046
2013-09-22 19:53:24
520
原创 格雷码
格雷码:Gray Code 1. 格雷码是一种二进制数值系统,它的相邻两个数之间只相差一位,其余个位都一样。与一般的自然的二进制系统相比,格雷码具有以下特点: a) 无权重 b) 相邻两个gray码之间只差一位,可以避免数字电路一次产生很大的脉冲,很大程度上避免了状态转换时候的逻辑混淆。 c) Gray码并不唯一 2. 自然二进制
2013-09-20 16:57:49
863
原创 找出数组中唯一出现k次的元素x
找出数组中唯一出现k次的元素x 1.问题描述 面试中常见的一类题目,给定一个数组,数组中的元素出现的次数规律,找出某个出现固定次数的元素X。 比如: 题目1:数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x。 题目2:一个数组A,数字出现的情况,只有以下三种:一些数字只出现一次;一些数字出现两次;只有一个数字出现三次。 总结上面的题目,可以
2013-09-14 22:02:56
1762
原创 C/C++的实现
C++的语言特性使之必须由编译器和链接器共同完成 1. 重复代码消除的方法: 简单的说,凡是需要自动生成的代码,都需要消除代码重复。包括: 模板templates 外部内联函数:extern,inline Function 虚函数表:virtual Function Table 1.将每个模板的实例代码都放到单独的一个段里 例如:GCC中的Link Once,VC++中的COMDAT
2013-09-14 01:33:13
702
原创 目标文件
1.目标文件 excutable可执行文件,比如在windows的Portable Excutable,linux的Excutable Linkable Format文件。excutable本质上是COFF(common file format)的变种。COFF包括: 动态链接库dll:windows系统下的.dll, linux下的.so 静态链接库sll:windows系统下的.lib,
2013-09-13 23:09:16
954
原创 算法定点化
1.提出问题:精度和动态范围之间的矛盾 2.解决方法:范围 1).除法转换为乘法或者移位运算 2).查表计算 3).级数展开,2和3一般针对复杂的数学公式 4).分子分母同时变化 3. 解决精度不足的方法:更长字长,加半位,整数模拟,查表 4. 具体步骤:推断算法每一步结果的动态范围。对复杂算法不可行,此时需要做动态的normalization或者通过尝试得到大致动态范围(常
2013-09-13 22:09:30
6390
原创 设计模式--原则
原则 记忆:李大哥单独开着奥迪去接依依。 单一职责原则(SRP, Single Responsibility Principle)强调的是单个类要内聚。对于一个类,应该仅有一个引起它变化的原因。什么是职责,职责就是变化的原因a reason for change。如果你能到多于一个的动机去改变一个类,那个这个类就具有多余一个的职责这样可以保持类的内聚性cohesion。如果应用程序的变化方
2013-09-12 20:06:32
601
原创 计算机基础知识资源列表
blog http://blog.csdn.net/zhengzhb/article/list/1http://dongxicheng.org
2013-09-12 10:03:26
808
原创 设计模式总说
1.记忆方法 创建型:用抽象的方法来建造一个单例的原型 结构型:把适配器按桥接的方式组合起来,用以修饰 门面,这样就能享受代理权了 行为型:中介有责任向观察者 解释 备忘录上的命令,否则,他们会调整好状态,采取不停地举着牌子去上访的对策。 2.原则 3.
2013-09-11 21:46:10
666
转载 互斥量、临界区、信号量、事件标志组和消息邮箱
原文地址:http://blog.chinaunix.net/uid-23094480-id-2551709.html 为了好的理解互斥量、临界区、信号量、事件标志组和消息邮箱,下面一些知识对初学者来说很重要: 为了实现各任务之间的合作和无冲突的运行,在有关联的任务之间必须建立一些制约关系。这些制约关系主要有两种:直接制约关系和间接制约关系。 直接制约关系源于任务之间的合作。
2013-09-11 17:42:21
1007
原创 自旋锁
1.概述 它是为实现保护共享资源而提出一种锁机制。自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 2.优缺点 这是一种比较低级的保护数据结构或者代码片段的方法,优点是快速简单,效率高,一般应用于比较短时间的资源占用。但可能存在两个缺点: 1)死锁。试图递归调用自旋锁必然引起死锁。因此,递归程
2013-09-11 16:44:53
692
原创 设计模式-singleton
本文是在http://www.cppblog.com/converse/archive/2006/07/21/10309.html原文之上的注释 作用:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2013-09-11 09:43:10
699
原创 设计模式
just draft 设计模式 学习设计模式的人大多有这样的经历,刚开始学习了一两个模式,感觉太有用,简直如有神助,就像一个人突然有一天拿到一个锤子,然后看什么都像是钉子,情不自禁的想上去敲两下,以显示锤子的威力。但是随着学习的深入,知道了更多的模式,情况就变了。感觉别说用了,能区分这些模式就不错了,更谈不上用了。其实大部分人学习设计模式的过程中都会遇到类似的困难,并不是我们笨或者
2012-11-11 12:13:41
368
原创 软件的本质
软件的本质 在图书市场上,似乎任何一门编程语言或者技术,都存在一个n天学会系列,当然n绝对小于30,学编程学技术似乎很简单。同时选择以程序员为业的毕业生似乎也越来越少了,因为他们觉得程序员需要太苦太累,并且需要不停的学习新语言,新技术,远远没有公务员舒服潇洒。我觉得这两种看法都是片面的,因为他们都没有抓住软件的本质。如果明白软件的本质,当然就不会被市面上的几个夸张性的书名所迷惑,如果能感受到软件
2012-10-29 20:30:47
1266
the elements of statistical learning
2014-02-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人