自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (14)
  • 收藏
  • 关注

原创 二叉树中删除一个节点

二叉树的删除可以算是二叉树最为复杂的操作,删除的时候要考虑到很多种情况:1.被删除的节点是叶子节点2.被删除的节点只有左孩子节点3.被删除的节点只有右孩子节点4.被删除的有两个孩子节点 所以在删除的时候,这4种情况都必须考虑进去,并且这4中情况之下,还会有细的划分,下面就细说怎么删除。 在二叉树中想要删除一个节点,首先需要找到这个节点,由于二叉树在插入节点的时候会遵

2014-06-15 23:06:34 12997 1

原创 Unicode编码详解

经常碰到乱码,为了弥补这一块的知识,在网上查阅了大量的资料,发现关于字符编码有很多概念,很多文章也是从不同角度来讲解,也能碰到相矛盾的文章,被绕了很久,最终才整理出我自己的理解,不一定完全准确,但是至少是自己经过思考和总结出来的,所以看文章只能是辅助自己思考的过程,要始终怀着怀疑和批判态度去思考。什么是Unicode?Unicode的学名是"Universal Multiple-O

2014-04-23 14:59:55 1451

原创 快速排序算法

快速排序思想:先把数列的最后一个数挑选出来,作为一种中间值,然后分别从数列的两端向中间靠近,从左向右遍历时,遇到比中间值大的数则把这个数的索引leftPtr先下来,然后再从右往左遍历,遇到比中间值小的数,就把这个数的索引rightPtr也记录下来,最后让leftPtr和rightPtr出的数交换,然后再分别从两端接着遍历,按照这个交换规则,最终可以让所以比中间值小的数放到数列的左边,所有比中间

2014-04-03 12:22:39 750

原创 希尔排序

希尔排序是对插入排序的一种改进,要想理解希尔排序必须先理解插入排序,希尔排序与插入排序的区别就是,希尔排序每次移动指针的距离不是固定每次只移动一个单位距离。可以想象一下,假设有一万个数据来排序,前9999个都已经排好了发现第10000个数据值相当小,如果它刚好是这个数据的最小值的话,他们它将会跟它前面的9999个数据依次的比较,然后再慢慢的移动,最后再排到第一个,这10000个数据还算少的,假如更

2014-04-02 23:18:09 693

原创 选择法排序

选择法排序,选择法排序应该算是所有排序中最好理解的一种排序算法了。其思想是,先定位到第一个,然后再拿所有的数据跟它比较,如果比它小,就让他们作交换,然后再定位到第二个,再拿出它后面所有的数据与它相比较,如果比它小就作交换,就这样,不停的定位到第2个,第三个,一直到第n个,当定位到第n个的时候,真个就是一个顺序的数列了。如下代码:public static void sort(int[] n

2014-04-02 22:54:36 977

原创 插入法排序

插入法排序,插入法排序相对于选择排序和冒泡排序来说相对要难理解一些,算法也比较巧妙,直接看代码: public static void sort(int[] m){ for(int i=1;i<m.length;i++){ int t=m[i]; int j=i-1; while(j>=0&&m[j]>t){ m[j+1]=m[j];//把前一个赋给后一个

2014-04-02 22:21:23 1039

原创 冒泡排序

冒泡排序法是一种常见的排序算法,在笔试中会经常考到,也是最基本的排序算法,下面直接看代码 public static void sort(int[] n) { for (int i = 0; i < n.length-1; i++) { for(int j=n.length-1;j>i;j--){ if(n[j-1]>n[j]){ n[j]=n[j]^n[j-1];//

2014-04-02 22:06:19 683

原创 ArrayList中ensureCapacity的使用与优化

对于ArrayLis中有一个方法ensureCapacity(int n),这个方法可以对ArrayList低层的数组进行扩容,显示的调用这个函数,如果参数大于低层数组长度的1.5倍,那么这个数组的容量就会被扩容到这个参数值,如果参数小于低层数组长度的1.5倍,那么这个容量就会被扩容到低层数组长度的1.5倍。说这么多,总而言之,记住这个函数可以对低层数组扩容就行了,在适当的时机,好好利用这个函数,

2014-04-01 19:48:11 8458 3

原创 ArrayList、LinkedList、Vector的使用和优化。

ArrayList、LinkedList、Vector都实现了List接口,它们有什么区别呢?ArrayList低层是数组来实现的,所以它适合查找和修改,不适合删除和增加。LinkedList低层是双向链表来实现的,所以它适合删除和增加,不适合查找和修改。Vector跟ArrayList相似,低层都是数组,它们唯一的区别就是vector是线程安全的,ArrayList是非线程安全的,所

2014-04-01 19:24:53 909

原创 如何不使用第三个变量进行数据交换?

对于这个问题又两种方法第一种通过按位异或实现int a=7,b=5;a=a^b;b=a^b;a=a^b;最终a=7,b=5,看起来虽然奇怪,但是的确能做到交换的效果,具体过程转换成2进制来看:a=0111;b=0101;a=0111^0101; / / =0010 ,一样的置0,不一样的置1b=0010^0101; //=0111=7;a=0010^01

2014-04-01 16:32:02 895

原创 求N!

刚开始看到这个题目觉得很简单,一个循环搞定。但是仔细考虑一下,如果N是一个特别大的数呢,它可能是100,1000.....这个时候基本类型数据已经装不下它了,这是时候就需要写一种数据结构来满足大数据的计算,如下代码: /** * 定义大数据的乘法 * @param str 乘数(大数据) * @param n 被乘数 * @return */ publi

2014-04-01 13:44:45 1101

原创 String驻留池

在java面试题中会经常碰到类似与这样的题目:String str=new String("abc");这句代码创建了几个对象?想要搞明白这个问题,不得不解释一个概念,也就是字符串常量池,也称为驻留池。对于以下代码:Sring  s1="abc";String s2="abc";总共创建了几个对象?答案是一个,这两个字符串,我们在使用的时候,它们在内容上没有任何区别,更没有理由

2014-03-26 18:12:25 1163

疯狂Java讲义

疯狂Java讲义

2014-04-07

slf4j-1.5.8.zip

slf4j-1.5.8.zip

2014-04-07

commons-logging-1.1.3.jar

commons-logging-1.1.3.jarcommons-logging-1.1.3.jar

2014-04-07

xml dom4j.jar

xml dom4j.jar

2014-04-07

jquery1.2.js

jquery1.2.js

2014-04-07

PDFBox-0.7.3.rar

PDFBox-0.7.3.rar

2014-04-07

编译工具Masm.rar

Masm.rar 编译工具Masm.rar

2014-04-07

上传下载cos.rar

上传下载cos.rar

2014-04-07

commons-fileupload-1.2.2.rar

commons-fileupload-1.2.2.rar

2014-04-07

Ant.自动构建工具

Ant.自动构建工具

2014-04-07

jviolajones2 人脸识别

jviolajones2 人脸识别 人脸识别人脸识别

2014-04-07

glibc2.8 glibc2.5glibc2.3

glibc2.8 glibc2.5glibc2.3

2014-04-07

linux 常用命令总结

linux 常用命令总结

2013-11-05

空空如也

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

TA关注的人

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