tiechui

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  算法

摘要:Factory:适合单个一对一 工厂产品。 public class Test { public static void main(String[] args) { // interface -- could not new interface// Factory[] f = {new FactoryA(), new FactoryB()};// for (Factory fa : f) {// fa.Create();// } // abstract FactoryAbstract[] f = new FactoryAbstract[2]; f[0] = new F... 阅读全文
posted @ 2010-12-14 11:57 tiechui 阅读(149) 评论(0) 推荐(0)

摘要:六 归并排序算法思想是每次把待排序列分成两部分,分别对这两部分递归地用归并排序,完成后把这两个子部分合并成一个序列。归并排序借助一个全局性临时数组来方便对子序列的归并,该算法核心在于归并。packagealgorithms;importjava.lang.reflect.Array;/***@authoryovn**/publicclassMergeSorter<EextendsComparable<E>>extendsSorter<E>{/*(non-Javadoc)*@seealgorithms.Sorter#sort(E[],int,int)*/@Su 阅读全文
posted @ 2010-12-07 17:28 tiechui 阅读(218) 评论(0) 推荐(0)

摘要:为了便于管理,先引入个基础类:packagealgorithms;/***@authoryovn**/publicabstractclassSorter<EextendsComparable<E>>{publicabstractvoidsort(E[]array,intfrom,intlen);publicfinalvoidsort(E[]array){sort(array,0,array.length);}protectedfinalvoidswap(E[]array,intfrom,intto){Etmp=array[from];array[from]=array[ 阅读全文
posted @ 2010-12-07 17:27 tiechui 阅读(214) 评论(0) 推荐(0)

摘要:public class HorseDan { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // 100 horses, 100 dan // big horse 3, mid 2, small 1/2 int totalWays = 0; for (int i=1; i<33; i++) { for (int j=1; j<50; j++) { int k = 100 - i - j; if (k%2 == 0... 阅读全文
posted @ 2010-12-07 11:23 tiechui 阅读(211) 评论(0) 推荐(0)

摘要:/* javac SelectSort.java* java SelectSort 5 3 4 2 1 9 8 7 6* * */public class SelectSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int arr[] = new int[args.length]; for (int i=0; i<args.length; i++) { arr[i] = Integer.parseInt(args[i])... 阅读全文
posted @ 2010-12-07 09:17 tiechui 阅读(217) 评论(0) 推荐(0)

摘要:注意: 2个锁是调用关系的, 不是并列关系public class DeadLock { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub final Object resource1 = "res1"; final Object resource2 = "res2"; Thread t1 = new Thread() { public void run() { synchronized(resource1) { 阅读全文
posted @ 2010-12-01 16:54 tiechui 阅读(184) 评论(0) 推荐(0)

摘要:注意: 1. wait()后 立即放锁, 给其他等待线程使用,当被唤醒,立即从wait()处执行(而不是从方法头重新执行) 2. notify(), 唤醒其他睡着的线程,不能唤醒自己。 3. 没有结束的问题用 while(用if, 则可能在错误情况下继续执行)。public class ProducerConsumer { public static void main(String[] args) { SyncStack ss = new SyncStack(); Producer p = new Producer(ss); Consumer c = new Consumer(ss... 阅读全文
posted @ 2010-12-01 16:25 tiechui 阅读(393) 评论(0) 推荐(0)