- 博客(16)
- 资源 (8)
- 问答 (6)
- 收藏
- 关注
读源码之:ArrayBlockingQueue
ArrayBlockingQueue是concurrent包提供的一个线程安全的队列,由一个数组来保存队列元素.通过[b]takeIndex[/b]和[b]putIndex[/b]来分别记录出队列和入队列的下标,以保证在出队列时[b]不进行元素移动[/b]. [code="java"] //在出队列或者入队列的时候对takeIndex或者putIndex进行累加,如果已经到了数组末...
2014-09-26 16:49:52 121
原创 JSON字符串转换为对象
作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了. 思路还是将json的解析拆分为两类,一类为[b...
2014-06-29 16:53:14 299
原创 centos6安装wxPython
好久没碰wxPython了,于是就想在自己的centos中装上温习一下,顺便重新熟悉下linux.于是上官网下安装包,结果坑爹的发现linux只提供源码编译安装(或许是因为我英语不好没发现).源码就源码嘛,反正mysql也是源码装的,下好源码开始装...于是发现坑得一手好爹,各种缺包,各种报错.这种情况当然只能问谷歌了,结果是还是装不上. 后来想能不能用yum装呢...
2012-11-20 20:48:29 269
原创 Python版B树
话说以前的树都用java写的,最近发现python有点生疏了,于是用python写了个B树实现,B树在索引领域用得还是蛮多了,如果没记错mysql的默认索引好像就是B树... 首先是数据实体对象,很简单,只存放key,value [code="python"] class Entity(object): '''数据实体''' def __init__(se...
2012-03-14 23:22:08 2882 1
二叉树:堆
这里说的堆其实是一个完全二叉树,每个节点都不小于自己的子节点,不要跟jvm的堆搞混了.由于是完全二叉树,可以用数组来构建.用数组构建树的规则很简单: 一个节点的父节点下标为: (当前下标 - 1)/2 一个节点的左节点下标为: 当前下标 * 2 + 1 一个节点的右节点下标为: 当前下标 * 2 + 2 用数组来构建时,可以非常方便的访问...
2012-02-21 10:25:53 103
多叉树:2-3-4树
平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征: 1、有一个数据项的节点总是有2个子节点(称为2-节点) 2、有两个数据项的节点总是有3个子节点(称为3-节点) 3、有三个数据项的节点总是有4个子节点(称为4-节点) 简单...
2012-02-18 01:11:34 184
二叉树:二叉搜索树
所谓二叉树,就是一个节点最多只能有两个子节点,而二叉搜索树就是一个经典并简单的二叉树.规则是一个节点的左子节点一定比自己小,右子节点一定大于等于自己(当然也可以反过来).在树基本平衡的时候插入,搜索和删除速度都很快,时间复杂度为O(logN).但是,如果插入的是有序的数据,那效率就会变成O(N),在这个时候,树其实变成了一个链表. tree代码: [code="java"] pu...
2012-02-17 12:37:10 92
二叉树:红黑树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题. 红黑树必须遵循红黑规则,规则如下 [b]1、每个节点不是红就是黑。 2、根总是黑的 3、如果节点是红的,它的子节点必须全部是黑的 4、从根到叶节点或者空子节点的每条路径,必须包含相同数量的黑色...
2012-02-16 17:12:28 118
原创 高级排序:快速排序
[code="java"] public void quickSort(int[] array){ this.quickSort(array, 0, array.length - 1); } public void quickSort(int[] array,int left,int right){ if(right -...
2012-02-13 00:12:10 80
原创 高级排序:希尔排序
[code="java"] public void shellSort(int[] array){ int limit = 1; int temp; int index; while(limit = temp){ array[index] = array[...
2012-02-11 15:16:19 104
原创 简单排序:归并排序
[code="java"] public void mergeSort(int[] array){ int temp = array.length/2; if(temp == 0){ return; } int[] a = new int[temp];...
2012-02-10 16:51:44 98
原创 简单排序:插入排序
[code="java"] public void insertSort(int[] array){ int temp; for(int i=1;i=0;k--){ if(array[k] > temp){ array[k+1] = array[k]; ...
2012-02-05 15:52:51 108
简单排序:选择排序
[code="java"] public void selectSort(int[] array){ int select; for(int i=0;i
2012-02-05 15:11:54 100
重构第一次写的线程池
最近没有什么学习欲望,修改之前的线程池的计划一直搁置,这几天比较闲,还是做了一次重构,由之前的2个类拆分为现在的4个类. 1、首先是工作线程类:TaskThread,此类为一个工作线程,用于完成一个工作任务,提供等待(wait),继续(proceed),绑定任务(bindTask)等方法 [code="python"] #!/usr/bin/env python # -*- codin...
2011-10-14 11:10:59 128
学完线程,摸索着写了个线程池,有待完善
首先是工作线程类 [code="python"] import threading class TaskThread(threading.Thread): def __init__(self): super(TaskThread,self).__init__() self.e = threading.Event() se...
2011-09-28 21:08:24 139
不知道碰到了什么键,就变成这样了,谁知道怎么变回来
2010-04-23
ext2.x中GridPanel本地数据分页的问题
2010-01-21
ext在subimt或者load的时候屏蔽罩的问题
2010-01-18
ext在组件化设计的时候formpanel重用的问题
2010-01-17
最近遇到一个Ext.Ajax.request的奇怪问题
2010-01-13
eclipse无法启动,请大家帮忙看下原因
2009-12-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人