- 博客(26)
- 资源 (2)
- 收藏
- 关注

原创 这些年收藏的技术大牛博客分享(后续还会继续更新)大家可以在评论中分享自己关注的
大家也可以在评论中分享自己关注的博客个人感觉一些比较好的。内容精致的博客推荐如下:http://www.cnblogs.com/huangxincheng/ 算法爬虫相关http://ifeve.com/ 并发编程网http://coolshell.cn/ 酷壳http://jm.taobao.org/ 阿里中间件http://www.searc
2014-04-09 18:12:01
7514
11

原创 二叉查找树原理分析及查找、插入、删除、遍历实现
二叉查找树作为一种最简单的二叉排序树,它是特殊的二叉树:对于二叉树,假设x为二叉树中的任意一个结点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个结点,则key[y] >= key[x]。那么,这棵树就是二叉查找树。二叉查找树具有如下性质:1、如果节点左子树存在,那么左子树中的所有值均小于其根节点的值2、如果节点右子树
2014-04-08 19:29:04
2656

原创 KMP模式匹配算法原理分析、next数组优化及java实现
朴素的模式匹配算法通过对主串进行回溯,每次在匹配不成功时回溯到主串的i-j+2的位置(i为主串中匹配失败的位置,j为模式串中匹配失败的位置,其中模式串字符数组从位置1开始),KMP算法采用next数组,避免对主串的回溯,主要分析模式字符串的特征,确定在匹配失败情况下通过next数组获取应该模式串应该回溯的位置,next数组目的在于当主串和模式串的字符匹配发生失败时,可以获取模式串回溯的位置,从新和主串进行匹配
2014-04-07 21:56:37
3789
2

原创 一步步学习数据结构和算法之常用排序效率分析及java实现
常用排序算法专题文章列表一步步学习数据结构和算法之选择排序效率分析及java实现一步步学习数据结构和算法之快速排序效率分析及java实现一步步学习数据结构和算法之直接插入排序效率分析及java实现一步步学习数据结构和算法之折半插入排序效率分析及java实现一步步学习数据结构和算法之冒泡排序效率分析及java实现一步步学习数据结
2014-04-04 16:18:36
3321

原创 一步步学习数据结构和算法之选择排序效率分析及java实现
选择排序算法效率分析及实现:public class SelectSort { /** * 选择排序原理:从待排序序列中选出最小的元素,放入到已排好序列 * 元素比较次数:需要比较的次数为n(n-1)/2,总的元素移动次数为3(n-1) ,空间占用情况为O(1) * 元素交换次数: * 最好情况:最好的情况,元素移动的次数为0 * 最坏情况:和最好情况一致,元素需要移动3
2014-04-04 15:29:32
1985

原创 一步步学习数据结构和算法之堆排序效率分析及java实现
堆排序效率分析及java实现:public class HeapSort { /** * 堆排序原理:首先构建一个最大堆,然后将堆顶元素和末尾元素进行交换,交换之后自上而下进行一次排序, * 堆排序时间复杂度为O(nlog2n),只是用了一个临时变量,所以空间占用率为O(1) * 最好情况:时间复杂度:O(nlogn) * 最坏情况:时间复杂度:O(nlogn) * 空间
2014-04-04 15:28:02
1405

原创 一步步学习数据结构和算法之归并排序效率分析及java实现
归并排序效率分析及java实现:public class Merge { /** * 归并排序原理:先拆分,再合并,归并排序首先将序列进行拆分直到每个序列不能拆分为止, * 然后对序列进行两两合并(合并的过程需要排序),知道最终只存在一个序列为止 * * 归并排序效率分析:归并排序运行的时间复杂度为O(nlogn) 空间代价为O(n) * * 最好情况和最差情况下时间
2014-04-04 15:25:50
1511

原创 一步步学习数据结构和算法之希尔排序效率分析及java实现
希尔排序效率分析及java实现:public class ShellSort { /** * 希尔排序原理:设置间隔变量,将数组进行分组,组内排序,然后缩小间隔变量,直至间隔变量为1(结束条件) * 希尔排序的空间占用率为O(1), * * 希尔排序在平均情况下时间复杂度为O(nlogn),最好情况下为O(n的平方) * * 希尔排序是一种不稳定的内
2014-04-04 15:21:49
1400

原创 一步步学习数据结构和算法之冒泡排序效率分析及java实现
冒泡排序效率分析及java实现:public class BubbleSort { /** * 冒泡排序原理:冒泡排序的关键点在于元素两两比较并交换位置,每一轮的比较可以确定一个最大或者最小元素 * 冒泡排序时间复杂度:其需要比较的次数为n(n-1)/2 空间占用率为O(1) * 在最差的情况下即元素逆序其需要比较的次数和元素移动的次数相等 * * 当然可以对冒泡排序进行
2014-04-03 21:49:07
1396

原创 一步步学习数据结构和算法之折半插入排序效率分析及java实现
折半插入排序效率分析及java实现:public class BinaryInsertSort { /** * 折半排序原理:在将一个新元素插入到一个已经排好的序列中时,采用折半的方式找到元素的位置,是对直接插入排序的改进 * 元素比较次数:元素比较的次数好于直接插入排序,平均比较次数为nlogn, * 元素交换次数:折半排序元素移动的次数与直接插入元素移动的次数相同,均与元素
2014-04-03 21:47:33
1902

原创 一步步学习数据结构和算法之直接插入排序效率分析及java实现
直接插入排序效率分析及java实现:public class InsertSort { /** * 直接插入排序原理:将新元素插入到已排好序的子序列 * 元素比较次数:O(n2) * 元素交换次数: * 最好情况:对于一个从小到大的序列,要求以从小到大顺序输出,那么每次插入时只需比较一次,所以总共比较O(n),元素移动次数为0 * 最坏情况:对于一个从小到大的序列,要求反序输
2014-04-03 21:46:26
1796
1

原创 一步步学习数据结构和算法之快速排序效率分析及java实现
快速排序效率分析及java实现 /** * 快速排序原理:在序列中找到基准元素,大于基准元素的放在右边,小于基准元素的放在左边,然后对基准元素两边再次进行排序 * 快速排序是内部排序中最好的一个,平均情况下其效率为O(nlogn),由于其采用递归方式,递归次数取决于递归树的高度log2n,因此其占用的空间为O(log2n) *
2014-04-03 21:42:59
1663

原创 2014-03-28阿里巴巴研发工程师实习生招聘试题
由于是实习生的招聘所以题目比较基础天猫积分兑换商品活动的数据库设计事务在天猫兑换商品中的应用 系统可能会遇到的瓶颈分析
2014-04-03 16:44:55
1777

原创 深入java字符串原理及其效率分析
通过任何方式创建的字符串都会在字符串池中查找该字符串是否存在,如果不存在则向字符串池中添加该字符串通过new关键字创建的字符串,会在堆栈中创建一个新的对象通过String str = "aa"+"bb"; 方式创建创建字符串,java只会维护其在字符串池中是否存在如果通过字符串拼接所创建的字符串中存在变量,那么java会在堆栈区中创建一个对象
2014-03-15 10:03:44
2185

原创 深入java NIO系列之通道分析与源码解读(二)
通道可以是单向的也可以是双向的,一个通道类可以实现ReadableByteChannel接口的read()方法,也可以实现WriteableByteChannel接口的write()方法,只要实现其中任一方法,通道就是单向的,实现两个接口为双向。一个文件可以通过不同的权限打开,从FileInputStream对象的getChannel()方法获取的FileChannel对象是只读的,尽管FileChannel实现了ByteChannel接口,但是在该通道上调用write()方法时,仍会报出NonWritea
2014-03-14 12:34:05
3724

原创 深入java NIO系列之缓冲区分析与源码解读(一)
数据从磁盘移动到进程的内存区域整个过程:进程发起read()系统调用,要求其缓冲区被填满,内核随即要求磁盘控制硬件发送命令,磁盘控制器直接将数据写入内核的内存缓冲区中,该过程通过DMA来完成,无需主CPU协助,当磁盘控制器将内核缓冲区填满,内核随即将数据复制到进程对应缓冲区中。内核空间:内核空间是操作系统所在的区域,可以直接与磁盘硬件设备通讯,控制用户区域的运行状态,所有的IO操作都直接或者间接的通过内核空间。当用户空间所需要的数据在内核空间中已经存在,那么内核无需再次向磁盘控制硬件发起系统调用,直接对内核
2014-03-12 22:48:03
4749
1

原创 mysql存储程序相关用法总结
mysql存储程序相关用法存储函数存储函数将向调用者返回结果存储函数创建实例mysql> delimiter $ //设置$为分隔符mysql> create function get_carname(car_id int) //创建函数 参数为car_id -> returns varc
2014-03-06 20:47:37
3484

原创 mysql查询优化相关技巧
mysql查询优化的相关操作使用EXPLAIN语句检查优化器操作+----+-------------+----------+-------+---------------+------+---------+------+------+--------------------------+| id | se
2014-03-06 14:05:36
1100

原创 mysql索引原理和优化相关介绍
mysql索引原理和优化相关介绍不同存储引擎索引的实现细节对于MyISAM存储引擎的数据表来说,数据表的数据行在数据文件中,索引值是在索引文件中,一个数据表可以有多个索引,但这些索引是在同一个索引文件中的;对于InnoDB存储引擎的数据表,其数据行和索引值没有分开,所有的数据表都是存放在同一个数据文件
2014-03-05 20:49:51
1280
2

原创 mysql外键的使用和引用完整性
外键和引用的完整性利用外键关系可以在某个数据表声明与另外一个数据表的某个索引相关联的索引,同时还可以将约束条件施加到外键关系中。外键可以帮助维护数据的一致性,如果不使用外键就需要我们自己来维护不同数据表之间的一致性。Mysql中,InnoDB存储引擎提供了对外键的支持父表:包含原始键值的数据表子表:引用父表中键值的数据表外键的创建和使用CREAT
2014-03-05 17:03:50
3290

原创 mysql事务处理和不同隔离机制
事务执行的两种方式事务的隔离性事务的非事务解决方案事务作为一个不可分割的逻辑单元执行一组sql语句,他们的执行效果可以被撤销。通过提交(commit)和回滚(rollback)的方式来实现。事务的ACID原则:原子性、隔离性、独立性、一致性事务执行的两种方式(默认情况下为自动提交模式):第一种方式:start transaction;sele
2014-03-05 15:37:47
1242
2

原创 mysql权限管理、日志管理及常用工具
mysql日志管理可以通过 mysqldumpslow工具来对慢查询日志进行分类汇总查看mysql存在的几种日志,默认情况下mysql日志存放在data目录下,慢查询日志 默认情况下命名为:host_name_slow.log二进制日志 包含所有的DDL和DML,但不包括查询数据, 默认情况下命名为:host_name-bin.000001查询日志 默认情况下命名为:ho
2014-03-04 22:39:46
2014
1

原创 深入分析 java IO的工作机制
通过阅读java IO 源码可以发现 IO 的基本架构 * 基于字节操作的IO接口: InputStream, OutputStream * * 基于字符操作的接口:Reader,Writer
2013-03-27 16:37:25
1772

原创 三种排序方法的比较
/*** 对于三种排序方法的比较:冒泡排序,选择排序,插入排序* 首先对于这三种排序都要进行这样的过程* 两两比较,然后复制或者交换位置(在程序中交换位置因为涉及到在内存中的移动,所以更消耗性能一点)**对于一个容量为N的数组来说:** 冒泡排序:* 首先需要比较的次数为N-1,N-2,N-3,N-4,.......1,总共是N*(N-1)/2* 如果在随机的情
2013-03-20 15:37:40
1228
原创 腾讯2014实习生招聘宣讲会随想
参加完腾讯2014实习生招聘宣讲会,感觉自己很渣1、腾讯团队氛围非常开放,内部总是有着特多、特好玩儿的事儿2、团队在一块儿久了,真的会有一种情怀,一种精神存在,这个是我向往的3、对于个人成长,平时多做点事,培养兴趣,不要把大把时间白白浪费掉,在此勉励自己
2014-04-15 21:19:00
1430
原创 写博客至今若干思考
1、有人质疑,你要写的内容你都知道了为什么还要写一遍,这不是浪费时间吗?2、看到一些人在学习阶段写博客,很高产,技术上升到一定高度之后,为什么就不写了?3、所谓写博客的真正目的在哪里?这是我的一些困惑,希望博友们能够一块交流
2014-03-06 15:41:09
2303
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人