- 浏览: 34398 次
- 性别:
- 来自: 北京
最新评论
-
cjf068:
LuckYes 写道楼主如果用最小堆的话,最好用调整堆的方式来 ...
求最小的k个数问题 -
LuckYes:
楼主如果用最小堆的话,最好用调整堆的方式来构建堆,这样效率更高 ...
求最小的k个数问题 -
cjf068:
这个算法的基本思路, ...
大数乘法 -
liujunsong:
这个算法的基本思路,是小学3年级的 算法,就是简单的把乘法运算 ...
大数乘法 -
shuidexiongdi:
去年我也写了一个http://shuidexiongdi.it ...
大数乘法
文章列表
原创,简单线程池实现
2012-02-02 beta1.0.1 修正一个bug,AbstractJob新增中断标志,新增示例代码
beta1.0.1 新增示例代码
中文数字到阿拉伯数字转换
- 博客分类:
- 算法
昨天博客上看到一童鞋面试微软的题目:
将中文数字转换成阿拉伯数字表示:
如 五千零一-->5001 五千一 5100
package org.jf.alg;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Stack;
...
package org.jf.alg;
import java.util.BitSet;
/**
*
*
*
* @author chenjf
*
*/
public class BloomFilter
{
private BitSet bit_array ;
private final int MAX_SIZE ;
public BloomFilter(int size)
{
this(size,2000000000);
}
public BloomFilter(int size,int m ...
插入排序
选择排序
快速排序
。。。。
后续补充
package org.jf.alg.sort;
/**
*
* 数组排序工具类
*
* 数组中不能有空元素
*
* @author junfeng.chen
*
*/
public class Sorter {
/**
*
* 选择排序
* 算法思想:将待排序的集合分为两部分,一部分为已排序的部分,一部分为未排序部分
* 开始时,未排序部分为整个集合,已排序部分为空
* 算法步骤:
* 每次从待排序的集合中找出最大(或最小)的元素,将该元素与 ...
简单日期计算类:
日期大小比较
日期之间天数计算
package org.jf.alg;
/**
*
* @author junfeng.chen
*
*/
public class Date {
private int year;
private int month;
private int day;
private static final int days_array[]= {31,28,31,30,31,30,31,31,30,31,30,31};
private static final int days_leap_arr ...
已知int数组a按升序排列,要求用线性时间复杂的算法,判断是否存在一个数n等于数组中某两个元素之和。
线性算法:
取两个数组下标,一个为起始下标,一个为末尾下标,分别即为low和high
(以下代码假设数组尚未排序)
/**
* 判断是否存在两个元素之和与给定数相等
* @param a
* @param n
* @return
*/
public static boolean withDoubleElements(int []a,int n)
{
Arrays.sort(a);
int low = 0,high = a.length-1 ...
求最大子数组之和的线性解法:本算法受编程珠玑中提示而得
/**
* 线性时间复杂度求最大和子数组
* @param a 源数组
* @return 结果数组 长度为3的数组 分别为元素起始位置 结束位置 总和
*/
public static int[] getMaxSumSubArray(int a[])
{
int begin = 0,end = -1,maxSofar = 0,maxHere = 0,cbegin = 0,cend=-1;
for(int i=0;i<a.length;i++)
{
maxHere ...
Using JMX
http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#
http://www.360doc.com/content/11/1102/15/2795334_161094472.shtml
JVM调优
http://zhaohe162.blog.163.com/blog/static/382167972011101325527323/
sun bug database
http://bugs.sun.com/bugdatabase/
http://www.iteye.com/topic/97316 ...
JVM内存溢出问题:
1.在启动脚本中增加heap dump输出选项:
SUN JVM: -xx:+HeapDumpOnOutOfMemoryError
IBM JVM:
HP JVM:
JROKIT JVM:
2.手动输出 heap dump
2.1 sun jvm
jmap -dump:format=b,file=$UMP_HOME/java_pid<pid>.hprof <pid>
如 ump的 进程号为3748,$UMP_HOME 为 /home/ump ,使用如下命令输出当前ump的heapdump
jmap -dump:format=b,file ...
MyLRUCache 缓存类
package org.jf.alg.lru;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* 限定容量二叉堆+HashMap实现LRU
*
* @author junfeng.chen
*
*/
public class MyLRUCache {
private Map<Ob ...
public class CharComp
{
/**
*
* 1.给单词排序
* 2.给排序后的单词设定标识符
* 3.通过标识符在map中查找对应的list,并将其追加其中(未排序的单词)
*
*/
public static Map<String,Set<String>> getGroupWords(String [] words)
{
Map<String,Set<String>> map = new HashMap<String,Set<String& ...
计算n个数的全排列
package org.jf.alg.stack;
import java.util.List;
import java.util.ArrayList;
public class PermUtil {
/**
* @param args
*/
public static void main(String[] args)
{
List<String[]> list = perm(new String[]{"a","b","c","d&qu ...
中缀表达式转后缀
后缀表达式计算
支持整型 分数计算,只支持 + - * /
package org.jf.alg.stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Stack;
public class OperationUtil
{
/**
* 中缀表达式转为后缀表达式
* (1)获取下一个输入标记
* (2)如果标记是:
* 左括号:将其压入表达式栈
* 右括号:连续弹出并显示栈中的元素,直到遇到一个左括号
* 一个运算符: ...
Many2One缓冲
- 博客分类:
- 算法
多线程并发操作中,为了尽量减少同步锁的开销,一般都会尽可能减少同步操作。以下是一个多线程写入,写入操作需要同步,读取操作需要部分同步;读取操作的同步发生在缓冲区交换的时候。
以下是简单的java实现
package org.jf;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
/**
*
*
* 项目名称:Util
* 类名称:MyBuffer
* 类描述: 多线程写入 单线程读取
* 创建人:Administr ...