![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
qiemengdao
这个作者很懒,什么都没留下…
展开
-
二分搜索专题1-在非递减数组中寻找满足A[i]=i的i
在javaeye上看到了一个二分搜索相关的提问http://www.iteye.com/topic/1118606,我设计了一个简洁高效的算法,这里贴出来:题目:对于一个非递减数组A,存在A[i]=i,求o(lgn)的算法找出i,分析:1,对于任意的j和i,如果j>i则A[j]>=A[i]; 2,假设所求的解是I,即A[I]=I,则对任意的j,如果A[j]>j,可以得到I...原创 2011-12-22 15:06:36 · 157 阅读 · 0 评论 -
二分搜索专题2-在有序二维数组中搜索一个元素
1,设二维数组p的每行每列都按照下标递增的顺序递增。用数学语言描述如下:p满足(1),对任意的x1,x2,y,如果x1原创 2011-12-22 17:16:38 · 91 阅读 · 0 评论 -
Project Euler Problem 80-高精度开方-牛顿逼近法
It is well known that if the square root of a natural number is not an integer, then it is irrational. The decimal expansion of such square roots is infinite without any repeating pattern at all.T...2012-01-05 12:09:32 · 149 阅读 · 0 评论 -
快速获取[0,n]之间的k个不同的随机顺序的随机整数
如果生成位于0到n-1之间的k个不重复的随机顺序的整数呢?[code]/** * 随机抽取[0,n)之前的k个不同的数并随机排序,(k n) { k = n; } int[] rets = new int[k]; // 保存取出的随机数 int[] array = new int[n];// 定义初始数组 for (int i = 0; i < n; ...原创 2012-02-02 13:18:10 · 171 阅读 · 0 评论 -
位图排序算法的一个实践
适应场景:1,输入的数据限制在相对较小的范围内;2,数据没有重复;3,对于每条记录而言,除了单一整数外,没有任何其他相关联的数据。2,要求输入:一个最多包含n个正整数的文件F1,每个数小于n(n=1000000),而且整数没有重复;输出:包含按升序排列的整数列表的文件F2;约束:不超过1M的内存空间,运行时间10秒以内。3,实现概要可以用一个20位长度的0,1字...2012-02-02 15:01:48 · 95 阅读 · 0 评论 -
车羊问题的一种简洁证明
在csdn上看到一篇关于车羊问题的文章(http://blog.csdn.net/naturebe/article/details/7272232),我编了个程序证明了结论,然后给出了一种简洁的数学证明。如下: 车羊问题(Car and Goats problem)又叫蒙提霍尔问题(Monty Hall Problem)或三门问题。这个问题来源于美国电视娱乐节目Let’s Make a...2012-02-23 11:11:15 · 173 阅读 · 0 评论 -
java-在非安全网络上建立可信任安全的通道(1/3)
看到标题,几乎所有人都会想到SSL,但SSL比较重量级,我想做的是只利用java的JCE体系(不是JSSE)在非安全网络环境下建立起一个可信任的、安全的通道。 所以这篇博文包括两个主题:可信任和安全。这一节只考虑如何交互密钥。下一节(2/3)讨论如何建立信任关系,并在可信关系上交换密钥(防止中间人攻击)。 非对称密钥不适合做通道加密,通道加密必然使用...原创 2012-10-05 18:46:04 · 85 阅读 · 0 评论 -
java-在非安全网络上建立可信任安全的通道(2/3)
在不安全的网络环境下进行密钥交互(1/3,前面那一节),容易遭受中间人攻击,什么是中间人攻击,请google it。 通信的双方必须是相互信任的,在这个基础上再进行密钥协商才是可靠的。那么,如何建立信任关系呢? 我以前的几篇博文介绍了用如何 用 Java编程方式生成CA证书 以及用CA证书签发客户证书。 现在假设,Alice和Bob的证书都是被同一个CA atlas签发的...原创 2012-10-05 19:19:42 · 100 阅读 · 0 评论 -
具有相同属性任务串行有序执行的线程池设计
我有一个这样的线程池的场景,相信很多人都遇到过: 1,每个用户都可以添加多个任务; 2,有很多的用户和很多的任务; 3,每个用户添加的任务必须有序串行执行,即在同一时刻不能有同时执行一个用户的两个任务; 4,实时性:只要线程池线程有空闲的,那么用户提交任务后必须立即执行;尽可能提高线程的利用率。 代码比较简洁,基本满足上述要求:public class SerialThreadExecu...2014-09-04 15:30:08 · 526 阅读 · 0 评论