- 博客(5)
- 收藏
- 关注
转载 蓄水池抽样——《编程珠玑》读书笔记
问题:如何随机从n个对象中选择一个对象,这n个对象是按序排列的,但是在此之前你是不知道n的值的。 思路:如果我们知道n的值,那么问题就可以简单的用一个大随机数rand()%n得到一个确切的随机位置,那么该位置的对象就是所求的对象,选中的概率是1/n。 但现在我们并不知道n的值,这个问题便抽象为蓄水池抽样问题,即从一个包含n个对象的列表S中随机选取k个对象
2014-10-31 14:21:16 661
转载 c++虚函数深度解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这
2014-10-21 14:29:00 737
转载 Manacher算法--O(n)回文子串算法
这里,我介绍一下O(n)回文串处理的一种方法。Manacher算法. 首先:大家都知道什么叫回文串吧,这个算法要解决的就是一个字符串中最长的回文子串有多长。这个算法可以在O(n)的时间复杂度内既线性时间复杂度的情况下,求出以每个字符为中心的最长回文有多长, 这个算法有一个很巧妙的地方,它把奇数的回文串和偶数的回文串统一起来考虑了。这一点一直是在做回文串问题中时比较烦的地方。这个
2014-10-15 15:06:58 645
转载 深入理解read(byte[] b)与readFully(byte[] b)
要搞清楚read(byte[] b)和readFully(byte[] b)的区别,可以从以下方面着手分析:1.代码的具体实现2.方法何时返回3.字节是以什么方式在网络上传输的1.read(byte[] b)调用read(byte[] b,0,b.length),其中的部分关键代码如下 Java代码 int c =
2014-10-13 22:21:32 996
转载 Java Socket编程
对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。这样就有两个Socket了,客户端和服务端
2014-10-13 13:01:06 566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人