`
543089122
  • 浏览: 149960 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表
package sunfa.lx; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.FileHandler; import java.util.logging.Formatter; import java.util.logging.Level; import java.util.loggin ...

mybatis中的一个OOXX

    博客分类:
  • java
mybatis : mybatis XML中执行多条语句: <update id="dao-bs_cc_o_stk_sq_item.update.zlljg" parameterType="hashmap"> begin  update bs_cc_store_info t set t.cc_jgzt=3 where t.kbh=#{kbh}; update bs_cc_store_info t set t.bs_lock_status=0,t.bs_kb_status=0,t.bs_lock_ldd=1 where t.kbh=#{kb ...
yeshaoting 写道   算法描述: 一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。 设计算法max操作,求栈中的最大值,该操作的时间复杂度也要求为O(1)。 可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂度无要求。 思路: 我借助一个变量count和一个数组空间(其实就是一个栈)完成该时间复杂度为O(1)的算法设计。     这里面不需要用到快排吧。。那样的话还能叫o(1)? 贴上我的code:用了个最大栈保存添加路径上的最大值,删除的时候如果相等撤销最大值栈中的顶部 ...
算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为 学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机 算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库 原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没 有功力,是不可能成 ...
分治算法,多么简单的思想!可是它无处不在。btree,b+树中都有它的身影! 1、分治算法:分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。 2、二分法:利用分治策略求解时,所需时间取决于分解后子问题的个数、子问题的规模大小等因素,而二分法,由于其划分的简单和均匀的特点,是经常采用的一种有效的方法,例如二分法检索。 3、解题步骤:分治法解题的一般步骤:   (1)分解,将要解决的问题划分成若干规模较小的同类问题;   (2)求解,当子问题划分得足够小时,用较简单的方法解决;   (3)合并,按原问 ...
首先温故一下java.util.HashMap的实现 int i = indexFor(hash, table.length); static int indexFor(int h, int length) { return h & (length-1); } 原理:java中的HashMap是基于哈希表的 Map 接口的实现,内部是用数组+链表实现的,性能方面 哈希表>二叉树>线性表.为什么哈希表这么快呢?通过查看源码得知 通过把哈希值和数组长度进行与运算,为什么要进行与运算呢?因为与运算后得到的数字一定大于等于0并且小于等于数组长度。 (&am ...
我们可以看到,如果一个二叉排序树节点插入的顺序是随机的,这样我们得到的二叉排序树大多数情况下是平衡的,即使存在一些极端情况,但是这种情况发生的概率很小,所以我们可以这样建立一颗二叉排序树,而不必要像AVL那样旋转,可以证明随机顺序建立的二叉排序树在期望高度是,但是某些时候我们并不能得知所有的带插入节点,打乱以后再插入。所以我们需要一种规则来实现这种想法,并且不必要所有节点。也就是说节点是顺序输入的,我们实现这一点可以用Treap。   Treap=Tree+Heap   Treap是一棵二叉排序树,它的左子树和右子树分别是一个Treap,和一般的二叉排序树不同的是,Treap纪录一个额外的数据, ...
基础很重要,这是永远不变的真理。 package sunfa; public class DiGui { public static void main(String[] args) { Stack<Integer> stack = new Stack<Integer>(5); for (int i = 0; i < 5; i++) { stack.push(i); } System.out.println("dg:"); dg(stack); System.out.println(&qu ...
[img][/img]最近研究二叉树一类的树结构,总用调试的办法去搞好麻烦,想用界面显示树结构,想看是不是AVL啊,(红黑树那个还在弄,太麻烦),于是就想弄出界面来,考虑了下准备用flex做也网页图形的,毕竟研究过用flex绘图等简单的东西,又想想swing这东西还一直没弄过呢,学java的不会swing惭愧啊,就是今天给按钮加个点击事件都纠结了半天。。。。唉 性格所致 ,越是不会的东西越要去折腾。反正也是做的玩玩,于是就用swing去折腾,虽然我从没用过,但我想还不是一个绘图类画画直线啥的。 关于绘制树的思路:从最简单的二叉树搞起。每个节点增加坐标属性(x,y),然后 遍历树的话也就是那4种 ...
如果你注意观察你会发现,输入法就打某个字,如果你下次还打那个字,那么它的位置将在它上一次位置的前面,如果你一直打某个字,那么它每次都往前移动一格或多格。 所以不同的人使用搜狗输入法啊、紫光啊、QQ输入法啊都觉得好使,因为它会根据每个人的不同习惯把你经常打的字弄到靠近前面。 输入法也是要求查询效率的,所以输入法其实也是btree,但是为了更加的智能它使用了另一种树结构-----------伸展树。 伸展树不要求像AVL、红黑树那样追求完美的平衡(其实红黑树也没AVL树那样使劲的追求平衡),伸展树追求的是90%与10%原则,啥意思呢?这意思是说平时我们打字的时候90%的字我们都不经常去打,至少绝大多 ...
package sunfa.tree; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * 参考:http://book.51cto.com/art/201106/269044.htm * Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种 * 。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计 * 。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 * * 网 ...
package sunfa.midNum; import java.util.Arrays; import java.util.Comparator; import java.util.Random; /** * * 参考:--------------------------------------------- * http://blog.csdn.net/chen09/article/details/6531678 * * 快速选择算法 和 第三名:BFPRT 算法 类似,都是在一个无序的数组中寻找第K小的数, * * 百度百科上解释了中 ...
package sunfa.kmp; /** * 朴素字符串匹配算法 */ public class SimpleKMP { public static void main(String[] args) { int index = simpleKmp("12444abababab", "444ababab"); System.out.println(index); } /** * 朴素字符串匹配算法的一个特点 ...
package sunfa.sort; import java.util.Arrays; import java.util.Comparator; import java.util.Random; public class HeapSort { public static void main(String[] args) { int n = 20; Random ran = new Random(); int[] arr = new int[n]; Heap<Integer> heap = new Heap<Integer> ...
package sunfa.sort; import java.util.Arrays; import java.util.Random; public class InsertionSort { public static void main(String[] args) { Random ran = new Random(); int[] a = new int[10]; for (int i = 0; i < a.length; i++) { a[i] = ran.nextInt(100); } System.out.pri ...
Global site tag (gtag.js) - Google Analytics