Blogroll
Categories
Archives
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
Category Archives: 数据结构和算法
josephus环的实现
一个比较经典的面试题: 已知n个人(以编号1,2,3…n分别表示)围成一个圆圈。从编号为1一个人开始报数,数到k的那个人出列;他的下一个人又从1开始报数,数到k的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 import java.util.LinkedList; import java.util.Queue; public class Josephus { public static T getLast(T[] array, int k) { final Queue queue = new LinkedList(); for (T t : array) { queue.add(t); } int i = 1; while (queue.size() > 1) … Continue reading
Posted in 数据结构和算法
Comments Off
一致性的hash的简单实现-java
最简单的consistent hashing的java实现 import java.util.Collection; import java.util.SortedMap; import java.util.TreeMap; public class ConsistentHash { private final HashFunction hashFunction; private final int numberOfReplicas; private final SortedMap circle = new TreeMap(); public ConsistentHash(HashFunction hashFunction, int numberOfReplicas, Collection nodes) { this.hashFunction = hashFunction; this.numberOfReplicas = … Continue reading
Posted in 数据结构和算法
Comments Off
【转载】一致性hash 算法(consistent hashing)
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛; 1 基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ; hash(object)%N 一切都运行正常,再考虑如下的两种情况; 1 一个 … Continue reading
Posted in 数据结构和算法
Comments Off
[原创]AES加密和解密
AES是一个迭代的、对称密钥分组的密码,可使用128、192和256位密钥,并用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。 Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式,加密后的文本也很简短 ?View Code JAVA /** * AES算法加密文本 * * @param secretKey * 密钥 * @param originalString * 需要加密的文本 * @return 加密的文本(Base64格式) **/ public static String aesEncrypt(String secretKey, String originalString) { if (StringUtils.isEmpty(secretKey)) throw new IllegalArgumentException("this secretKey must not be … Continue reading
[原创]Converting Hex String to/from Byte Array in java
1.hex转byte数组
2.byte数组转hex Continue reading
用位移求int值得二进制码
?View Code JAVApublic class BinaryTransfer { public static String transfer(int x) { final StringBuilder sb = new StringBuilder(""); int i = 31; if (x >= 0) { while (i >= 0) {// 高位->低位,一一求出每位的值 sb.append((x >>> i) & 1); i–; } … Continue reading
Posted in 数据结构和算法
Comments Off
c语言实现的冒泡排序
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。 算法复杂度是O(n^2) ?View Code C#include <stdio.h> void printArray(int num[],int length); int main(int argc, char** argv) { int num[]={2,9,0,6,2,3,1}; int i=0; int length=sizeof(num)/sizeof(num[0]); for(i=0;i<length;i++){ int j=0; for(j=length-1;j>i;j–){ if(num[j-1]>num[j]){ int tmp=num[j]; num[j]=num[j-1]; num[j-1]=tmp; } } } printArray(num,length); } void printArray(int … Continue reading
