存档

文章标签 ‘算法’

简易Java(08):为什么Java中的字符串是不可变的?

2014年5月23日 没有评论

“图解Java字符串的不可变性”中,介绍了在Java中字符串是不可改变的。但是,大家有没有想过“为什么字符串是不可变的?”今天就来给大家解释一下这个问题。

通过substring()方法在JDK6和JDK7中的异同 ”这篇文章,让D瓜哥看到,对于字符串的处理也是与时俱进。所以,如果发现下文中如有已经过时之处,请及时指出。D瓜哥也会及时更正的。

这是面试中经常被问到的老问题了。在Java中,将字符串设计成不可变是又很多原因的。一个好的回答需要建立在 阅读全文…

深入浅出RSA加密算法编程实践

2013年1月16日 1 条评论

  今天(2013年1月13日)上午看了《松本行弘的程序世界》这本书的第九章“整数和浮点小数”里面谈到了“RSA加密算法”,而且还给出了一个小小的编程实例,真是应了书上的那句话:“如果不用考虑效率,程序简单得有点让人失望”!以前也接触过RSA加密算法,感觉这个东西太神秘了,是数学家的事,和D瓜哥无关。但是,看了那个实现,让D瓜哥感觉这个东西实在太简单了,忍不住想写一篇文章分享一下。

  学过算法的朋友都知道,计算机中的算法其实就是数学运算。所以,再讲解RSA加密算法之前,有必要了解一下一些必备的数学知识。我们就从数学知识开始讲解。

必备数学知识

  RSA加密算法中,只用到素数、 阅读全文…

分类: 挨踢(IT) 标签:

“猜手机号游戏”的源码分析:二分查找+面向对象

2012年12月17日 3 条评论

  很多朋友体验了“给哥三十五次机会,哥就能猜中你的手机号”,反馈还不错。有些明眼的朋友,一眼就看出来所用的算法。D瓜哥表示很佩服。另外有一些朋友也问所使用的算法,D瓜哥今天就把源代码和算法全部揭晓。

  其实,这个代码很简单。不过也有三个看点:二分查找算法、面向对象编程和对数的计算。下面我们一一讲解。

二分查找算法

  基本原理是二分查找算法。首先,我们先简要介绍一下“二分查找算法”。

  二分查找又称折半查找,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下时间复杂度是 阅读全文…

给哥三十五次机会,哥就能猜中你的手机号

2012年12月16日 7 条评论

  先说明一下,这篇可能算是水文,只有一些吐槽。不喜勿拍。不过,下面的小游戏,可以试试。

  前段时间给朋友当“红娘”,给他介绍女朋友。给他介绍女朋友,谁知道那货有点放不开,没怎么和人家联系。和D瓜哥相比,太差劲了!D瓜哥的女朋友也是朋友介绍的,哥第一次和她联系时,只用了三十五次机会,就把她的手机号猜出来了。然后,顺理成章就发展下去了。所以,D瓜哥想对希望让人介绍女朋友的哥们说一句:第一次和人家联系的时候,一定要聪明一次,先给人家留个好印象,再慢慢发展。另外,D瓜哥正在学习关于JavaScript模块化编程的知识,正好可以把这个“猜数游戏”写出来练练手。

  就在前两天,D瓜哥的一个朋友半夜发信息给我说,他问一个女同事的生日,人家说涉及银行卡密码,不告诉他。问我,这个意味着啥。当时,哥的“猜数游戏”已经完成。D瓜哥就给他吹牛逼说,不需要问, 阅读全文…