- 博客(17)
- 资源 (31)
- 收藏
- 关注
原创 nginx介绍及编译安装
1. 无题 第一次听到Nginx这个词,还是两年前的事儿了,最近常逛CSDN,越来越频繁的接触到这个词汇,今天看了些资料,简单的总结下,作为入门。2. 背景介绍: Nginx (发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发
2013-10-30 23:15:28 1149
转载 不是技术牛人,如何拿到国内IT巨头的Offer
不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰。看看这些牛人,NOI金牌,开源社区名人,三年级开始写Basic...在跪拜之余我们不禁要想,和这些牛人比,作为绝大部分技术屌丝的同学们,是否真的与国内IT巨头遥不可及呢?当你打开这个帖子的时候,我已经默认你是此文的目标读者,也就是想进入国内一流互联网企业的非牛人应届生。你不需要拿NOI的奖,无需是开源社
2013-10-30 19:56:54 1351 2
原创 大话数据结构开篇:时间复杂度和空间复杂度
1. 算法的复杂度:算法的复杂度分为时间复杂度和空间复杂度,时间复杂度是指衡量算法执行时间的长短;空间复杂度是指衡量算法所需存储空间的大小。2. 时间复杂度: 2.1 时间频度:一个算法中语句执行次数称为时间频度,计为T(n)。2.2 时间复杂度:算法的时间复杂度描述的是T(n)的变化规律,计作:T(n) = O(f(n))。用大写O( )来体现算法复杂度的记法称为
2013-10-29 23:23:17 4457 5
原创 大话数据结构十二:字符串的模式匹配(BM算法)
1. BM算法简介:KMP算法其实并不是效率最高的字符串匹配算法,实际应用的并不多,各种文本编辑器的“查找”功能大多采用的是BM算法(Boyer Moore)。BM算法效率更高,更容易理解。2. BM算法分析:(1) 假定字符串为"HERE IS A SIMPLE EXAMPLE",搜索词为"EXAMPLE"。(2) 首先,"字符串"与"搜索
2013-10-27 21:27:44 4383
原创 大话数据结构十一:字符串的模式匹配(KMP算法)
1. KMP算法简介:kmp算法是一种改进的字符串匹配算法,相比朴素算法,KMP算法预先计算出了一个哈希表,用来指导在匹配过程中匹配失败后尝试下次匹配的起始位置,以此避免重复的读入和匹配过程。这个哈希表被称为"部分匹配值表"(Particial match table),这种设计是KMP算法最精妙之处。2. KMP算法分析:下面以阮一峰老师博客中的一
2013-10-27 09:14:52 4189 3
原创 大话数据结构十:字符串的模式匹配(BF算法)
1. BF算法简介:BF(Brute Force)算法是普通的模式匹配算法,又称为朴素匹配算法或蛮力算法,该算法最大缺点就是字符匹配失败指针就要回溯,所以性能很低。2. BF算法思想:BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次
2013-10-22 23:12:31 2683
原创 大话数据结构九:队列的链式存储结构(链队列)
1. 链队列的特点:链队列其实就是单链表,只不过它是先进先出的单链表,为了实现方便,程序中设置了队头(front),队尾(rear)两个指针。2. Java使用数组实现循环队列: //结点类,包含结点的数据和指向下一个节点的引用public class Node { private E data; // 数据域 private Node next; /
2013-10-13 13:30:43 2012
原创 大话数据结构八:队列的顺序存储结构(循环队列)
1. 什么是队列?队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。2. 队列的特点:队列是一种先进先出(First In First out)的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。3. 队列顺序存储有什么不足?使用数组实现的顺序存储,当做出队列操作时,所有的元素都需要向前移动一位,
2013-10-12 01:11:37 3956
原创 大话数据结构七:两栈共享存储空间(双向栈)
1. 为什么要使用双向栈?通过上一篇博客特殊的线性表(栈),可以知道栈的顺序存储性能相对较高,因为它不存在插入和删除时移动元素的问题,但是它有一点缺陷:要实现确定数组存储容量的大小,万一不够,需要扩充容量。这时双向栈就派上用场了,它可以最大限度的利用事先开辟的存储空间。2. 双向栈有什么特点?数组有两个端点,两个栈有两个栈底,让一个栈的栈底为数组的始
2013-10-10 01:06:48 6975
原创 大话数据结构六:特殊的线性表(栈)
1. 什么是栈?栈(stack)是限定仅在表尾进行插入和删除操作的线性表。2. 栈的特点:1.) 栈又称为后进先出(Last In First out)的线性表,栈元素具有线性关系,即前驱后继关系。2.) 一个栈,它的栈底是固定的,只允许在栈顶进行插入和删除操作。3. 栈的顺序存储结构(Java数组实现):// 栈的数组实现, 底层使用数组:publi
2013-10-09 00:08:42 2311
原创 大话数据结构五:线性表的链式存储结构(双向链表)
1. 双向链表:在单链表的每个结点中,再设置一个指向其前驱结点的指针域,那么在双向链表中的结点都有两个指针域,一个指向直接后继,另一个指向直接前驱。2. 单链表和双向链表比较:单链表:总是要从头到尾找结点,只能正遍历,不能反遍历。双向链表: 可以从头找到尾,也可以从尾找到头,即正反遍历都可以,可以有效提高算法的时间性能,但由于每个结点需要记录两份指针,所以在空间占用上略多一点,这就是通
2013-10-07 22:04:28 1625
原创 大话数据结构四:线性表的链式存储结构(单向循环链表)
1. 单向循环链表:将单链表尾结点的指针端由空指针改为指向头结点,使整个单链表形成一个环,这种头尾相接的单链表称为单向循环链表。2. 单向循环链表和单链表实现的区别:1.)添加一个结点到单向循环链表末尾时,必须使其最后一个结点的指针指向表头结点,而不是象单链表那样置为null。2.)判断是否到达表尾时,单向循环链表可以判断该结点是否指向头结点,单链表只需要知道是否为null。3.j
2013-10-07 18:02:43 1809
原创 大话数据结构三:线性表的链式存储结构(静态链表)
1. 静态链表:用数组描述的链表叫静态链表,通常为方便数据插入,我们会把数组建的大一些。2. 数组元素(node):由两个数据域组成(data,cursor)。数据域data用来存放数据元素,也就是通常我们要处理的数据;而cursor相当于单链表中的指针,存放该元素的后继在数组中的下标3. java实现静态链表:// 静态链表class StaticLinkedList { p
2013-10-06 22:28:13 1547
原创 大话数据结构二:线性表的链式存储结构(单链表)
1. 线性表的链式存储结构:指的是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的,这就意味着这些数据元素可以存在内存未被占用的任意位置。2. 结点:结点由存放数据元素的数据域和存放后继结点地址的指针域组成。1.)顺序存储结构中,每个数据元素只需要存数据元素的信息就可以了。2.)链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址
2013-10-06 13:10:39 1984
原创 大话数据结构一:线性表的顺序存储结构
1. 线性表的顺序存储结构:指的是用一段地址连续的存储单元依次存储线性表的数据元素。Java:使用数组实现线性表的顺序存储结构:// 顺序存储结构public class SequenceList { private static final int DEFAULT_SIZE = 10; // 默认初始化数组大小 private int size; // 当前数组大小 priv
2013-10-04 23:44:32 2238 2
java事务 - 传递Connection
2014-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人