- 博客(25)
- 资源 (5)
- 收藏
- 关注
原创 求一个集合的所有子集(二进制实现)
含有n个元素的集合具有2^n个子集,可以使用具有n位的二进制数来表示其中的某一个子集。如集合{a,b,c,d} ,可以使用1000 表示子集{a} , 1001 表示子集{a,d}。n位的二进制刚好有2^n个数。由于int型只有32位,所以只能表示具有32个元素的子集。以下用int数组来表示一个大数,使用大数来表示子集。public class BigDataZiJiHe { int[]
2015-07-09 20:05:40 1687
原创 java迷宫算法
本章使用栈来实现迷宫算法基本思路为: 对入口节点进行标记 while(栈不空){ 查看栈顶元素; if(栈顶元素为出口节点){ 循环输出栈中元素 } else{ if(查看该节点的下方节点是否符合条件){ 对下方节点标记; 下方节点入栈;
2015-06-29 09:38:41 1272
原创 由先序序列/后序序列和中序序列构造二叉树
假设树的先序序列和中序序列分别为 preorder = {7,10,4,3,1,2,8,11} inorder = {4,10,3,1,7,11,8,2} 1.将中序序列存储在hashmap中,key存储节点的值,value存储节点在中序序列中的下标。public void map(int[] order){ int n = order.length; for(
2015-06-13 10:47:38 1121
原创 构建高效的结果缓存
本程序使用ConcurrentHashMap,FutureTask构建高效的缓存。Computable代表高开销的计算任务,接受A类型的入参,返回V类型的结果 interface Computable{//计算组件 public V compute(A arg);//高开销的计算 }采用装饰者模式对Computable组件进行装饰,增强computable方法,使之能对结果进
2015-06-05 16:17:26 413
原创 快速选择算法 查找数组中第个最小元素(元素不重复)
修改快速排序算法以解决选择问题,步骤如下:(1)若数组S中只有一个元素,则返回次元素。(2)在S中选取元素v作为枢纽.(3)将集合S-{v} 分割成两个集合S1和S2。(4)若k|S1|+1,则枢纽元为要找的元素。否则第k个元素在S2中,它是S2中第K-|S1|-1个最小元,即quickSelect(S2,K-|S1|-1)。代码如下: public class Kto
2015-05-31 14:17:42 505
原创 快速排序
1.快速排序的基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。对数组s 进行快速排序的步骤如下(1)如果s中元素的个数为0或1,则返回。(2)取s中任一元素v作为枢纽元(pivot)。(3)将剩余的元素s-{v} 划分
2015-05-30 15:48:25 349
原创 希尔排序
希尔排序实质上分组的插入排序,利用“增量”将待排数据分为若干个组,分别对这些组进行插入排序,然后“增量”减小,再分组,再排序,直至“增量”为1,所有数据为一组,此时这些数据大部分都已有序,进行插入排序效率较高。如图:当增量为5时,分组情况为(81,35,41),(94,17,75),(11,95,15),(86,28),(12)分别对每组插入排序。排序后,各组内部是有序的。然后减为
2015-05-13 14:23:05 402
原创 Google面试题 多线程写文件
有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD。初始都为空。现要让四个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....请设计程序。程序:思路:观察文件内容可
2015-05-12 21:05:47 515
原创 CopyOnWriteArrayList 源码分析
1.CopyOnWriteArrayList 是线程安全的ArrayList,适用于保存的数据量不大,读操作远多于写操作,对实时性要求不高的场景。CopyOnWriteArrayList 对读操作不同步,对写操作同步。在进行写操作时,会对共享变量进行COPY,在副本上进行更新,然后将更新好的副本替换掉原来的共享变量。写操作开销比较大。由于读操作不需同步,所以在某线程进行写操作时,其他线程可以进行读
2015-05-08 16:17:35 434
原创 LinkedBlockingQueue 源码学习
LinkedBlockingQueue是一个由单向链表实现的阻塞队列,该队列按照先进先出的原则对元素进行排序。队尾插入元素,对头删除元素。在构造LinkedBlockingQueue时可以指定容量大小,若未指定元素,则容量大小为Integer.MAX_VALUE.1.以下为LinkedBlockingQueue的属性 static class Node {//链表中节点的定义
2015-05-07 16:53:14 456
原创 判断单链表是否存在环及求环入口点
1.判断单向链表是否存在环设置两个指针,fast,slow 。 fast每次走两步,slow每次走一步。 若链表存在换的话,则fast先进入环,在slow走完一圈之前,fast与slow必然在某点相遇,此时fsat==slow。代码如下:public boolean isCir(ListNode l){ if(l == null || l.next == null){ r
2015-04-15 09:56:23 567
原创 判断一条单向链表是不是“回文”
思路:先找到单链表的中间节点,对后半部分进行反转,然后用两个指针分别指向链表的头部和中间节点,进行遍历比较。定义节点类型:class ListNode{ int val; ListNode next; public ListNode(int val){ this.val = val; this.next =null; } }public boolean i
2015-03-15 16:15:17 584
原创 字符串转数字
题目:输入一个由数字组成的字符串,把它转换成整数并输出。例如:输入字符串"123",输出整数123。要考虑的问题:1.字符串为空串 ‘ ’ ;2.有‘ +’或‘-’等符号;3.非法字符;4.字符串表示的数字过大,超出了Int 表示的范围, -2147483648 ~ 2147483647 。 public static int atoi(String s ) th
2015-03-14 15:58:55 442
原创 字符串包含
两个由字母组成的字符串S1,S2 .判断S1是否包含S2中的所有字母。均为大写字母。方法一:使用HashMap public static boolean zifuTest(char[] s1,char[] s2){ Map map = new HashMap(); for(int i =0;i<s1.length;i++){ map.put(s1[i], s1[i]);
2015-03-12 19:50:04 442
原创 反转句子中的单词
题目:单词翻转。输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如,输入“I am a student.”,则输出“student. a am I”。
2015-03-12 17:04:23 1415
原创 Thiking in java笔记
第五章 this 关键字1.this关键字只能在方法的内部使用,表示对调用该方法的那个对象的引用。即当前对象的引用。public class Leaf{ int leafCount = 0; public Leaf increment(){ leafCount++; }public static void main(String[] args){
2015-03-08 21:45:00 496
原创 Thinking in java 笔记 第3章 操作符
第3章 操作符1.如果对char , byte , short 类型的数值进行移位处理,那么在移位前,他们会转换为INT 类型的值,并且得到的结果也为INT类型。2.如果对基本数据类型进行算数运算或按位运算,只要类型比INT小(char, byte ,short ),则在运算之前会转换为INT类型,结果也为INT类型。若果想把结果赋值给较小的类型,必须进行强制类型转换(可能会出现信息丢失
2015-03-07 15:11:40 419
原创 eclipse中修改web项目名称
1.修改项目\.settings\org.eclipse.wst.common.component的内容。 mobile"> mobile/build/classes"/> mobile"/> 2.修改项目.project文件。mobile3.在eclipse中右键属性,选中Web
2014-10-10 19:18:47 730
转载 android 程序连接指定wifi
package com.example.wifimanager;import java.util.List;import android.net.wifi.WifiConfiguration;import android.net.wifi.WifiManager;import android.util.Log;public class WifiConnect {Wi
2014-07-11 16:49:23 1003
编译原理课设 词法分析器
2011-06-18
数据结构各章习题与答案(严蔚敏版—清华大学出版)
2010-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人