自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (5)
  • 收藏
  • 关注

原创 LinkedBlockingQueue源码分析

LinkedBlockingQueue是基于链表的阻塞队列,

2015-07-27 21:33:30 446

原创 使用递归实现数的全排列

设有一个int数组,包含5个元素,每个元素只能取0或1,求这5个元素的全排列。

2015-07-10 14:45:17 528

原创 求一个集合的所有子集(二进制实现)

含有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 1645

原创 青蛙跳台阶

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个N级台阶总共有多少种跳法。

2015-07-03 18:40:30 1446

原创 java迷宫算法

本章使用栈来实现迷宫算法基本思路为:   对入口节点进行标记  while(栈不空){  查看栈顶元素;   if(栈顶元素为出口节点){       循环输出栈中元素   }  else{        if(查看该节点的下方节点是否符合条件){               对下方节点标记;               下方节点入栈;

2015-06-29 09:38:41 1207

原创 由先序序列/后序序列和中序序列构造二叉树

假设树的先序序列和中序序列分别为 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 1066

原创 构建高效的结果缓存

本程序使用ConcurrentHashMap,FutureTask构建高效的缓存。Computable代表高开销的计算任务,接受A类型的入参,返回V类型的结果 interface Computable{//计算组件 public V compute(A arg);//高开销的计算 }采用装饰者模式对Computable组件进行装饰,增强computable方法,使之能对结果进

2015-06-05 16:17:26 388

原创 快速选择算法 查找数组中第个最小元素(元素不重复)

修改快速排序算法以解决选择问题,步骤如下:(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 477

原创 快速排序

1.快速排序的基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。对数组s 进行快速排序的步骤如下(1)如果s中元素的个数为0或1,则返回。(2)取s中任一元素v作为枢纽元(pivot)。(3)将剩余的元素s-{v} 划分

2015-05-30 15:48:25 322

原创 希尔排序

希尔排序实质上分组的插入排序,利用“增量”将待排数据分为若干个组,分别对这些组进行插入排序,然后“增量”减小,再分组,再排序,直至“增量”为1,所有数据为一组,此时这些数据大部分都已有序,进行插入排序效率较高。如图:当增量为5时,分组情况为(81,35,41),(94,17,75),(11,95,15),(86,28),(12)分别对每组插入排序。排序后,各组内部是有序的。然后减为

2015-05-13 14:23:05 379

原创 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 491

原创 CopyOnWriteArrayList 源码分析

1.CopyOnWriteArrayList 是线程安全的ArrayList,适用于保存的数据量不大,读操作远多于写操作,对实时性要求不高的场景。CopyOnWriteArrayList 对读操作不同步,对写操作同步。在进行写操作时,会对共享变量进行COPY,在副本上进行更新,然后将更新好的副本替换掉原来的共享变量。写操作开销比较大。由于读操作不需同步,所以在某线程进行写操作时,其他线程可以进行读

2015-05-08 16:17:35 407

原创 LinkedBlockingQueue 源码学习

LinkedBlockingQueue是一个由单向链表实现的阻塞队列,该队列按照先进先出的原则对元素进行排序。队尾插入元素,对头删除元素。在构造LinkedBlockingQueue时可以指定容量大小,若未指定元素,则容量大小为Integer.MAX_VALUE.1.以下为LinkedBlockingQueue的属性 static class Node {//链表中节点的定义

2015-05-07 16:53:14 432

原创 判断单链表是否存在环及求环入口点

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 537

原创 java 编程思想笔记 中断阻塞的线程

不能够中断试图获取synchronized锁或者试图执行IO操作的线程。

2015-04-10 16:30:54 352

原创 判断一条单向链表是不是“回文”

思路:先找到单链表的中间节点,对后半部分进行反转,然后用两个指针分别指向链表的头部和中间节点,进行遍历比较。定义节点类型: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 559

原创 字符串转数字

题目:输入一个由数字组成的字符串,把它转换成整数并输出。例如:输入字符串"123",输出整数123。要考虑的问题:1.字符串为空串 ‘ ’  ;2.有‘ +’或‘-’等符号;3.非法字符;4.字符串表示的数字过大,超出了Int 表示的范围, -2147483648  ~ 2147483647  。 public static int atoi(String s ) th

2015-03-14 15:58:55 416

原创 字符串包含

两个由字母组成的字符串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 421

原创 反转句子中的单词

题目:单词翻转。输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如,输入“I am a student.”,则输出“student. a am I”。

2015-03-12 17:04:23 1388

原创 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 472

原创 Thinking in java 笔记 第3章 操作符

第3章 操作符1.如果对char  , byte , short 类型的数值进行移位处理,那么在移位前,他们会转换为INT 类型的值,并且得到的结果也为INT类型。2.如果对基本数据类型进行算数运算或按位运算,只要类型比INT小(char, byte ,short ),则在运算之前会转换为INT类型,结果也为INT类型。若果想把结果赋值给较小的类型,必须进行强制类型转换(可能会出现信息丢失

2015-03-07 15:11:40 393

原创 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 701

原创 解决Window下MySql 5.6 安装后mysqld.exe内存占用很高的问题

zaiwindow sever 2008

2014-09-20 14:34:27 7024 1

原创 在阿里云主机上搭建JBOSS服务器并部署项目,通过域名:端口号访问项目

一、申请阿里云主机,操作xiton

2014-09-19 19:36:51 2029 1

转载 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 958

数值分析实验报告 计算方法

课题名称:非线性方程求根 课题名称:线性方程组的直接解法 课题名称:解线性方程组的迭代法 课题名称: 函数插值方法

2011-06-18

编译原理课设 词法分析器

本实验中将c语言单词符号分成了六类:关键字、数字、用户自定义标识符、运算符、边界符和函数名。 对于一个具体源程序而言,在扫描字符串时识别出一个单词,若这个单词的类型是关键字、数字、用户自定义标识符、运算符、边界符或函数名中之一,那么就将此单词以文字说明的形式输出。每次调用词法分析程序,它均能自动继续扫描下去,形成下一个单词,直到整个源程序全部扫描完毕,从而形成相应的单词串

2011-06-18

数据结构课程设计(c语言版)马踏棋盘,教学计划编制问题

数据结构课程设计(c语言版)马踏棋盘,教学计划编制问题。给出了源代码和实验报告

2010-12-20

数据结构各章习题与答案(严蔚敏版—清华大学出版)

数据结构各章习题与答案,以严蔚敏的数据结构(c语言版)为标准,用类c语言描述,清华大学出版社。给出了各章习题与解答 第一章 概论 第二章 线性表 第三张 栈和队列 第四章 五章 串和数组 第六章 二叉树 第七章 图 第九章 查找 第十章 排序

2010-12-20

C语言经典程序100例

c语言经典程序100例,提供个解决各种问题的代码。

2010-06-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除