2015年10月1日

进制转换

摘要: 十六进制,十进制,二进制的转换,转换结果放在一个string中首先,十进制转到几进制,就是除以几的余数,先得到的放在低位,直至结果为0其次string转成int:Integer.parseInt(s); 也可以通过string得到char,在通过与'0'相减比较得到intint转成string: S... 阅读全文

posted @ 2015-10-01 15:01 joannae 阅读(157) 评论(0) 推荐(0) 编辑

JRE,JVM,JDK

摘要: JRE,JVM,JDK的关系。JRE(Java Runtime Environment)java运行环境,我们可以把它看成是一个操作系统。也就是说JRE提供了Java执行的软件平台。JVM (Java Virtual Machine)Java虚拟机。所谓“虚拟机”顾名思义就是模拟出来的东西。JVM就... 阅读全文

posted @ 2015-10-01 14:35 joannae 阅读(159) 评论(0) 推荐(0) 编辑

将中缀式转化为逆波兰式 (栈)

摘要: 逆波兰式:Reverse Polish notation,RPN,,也叫后缀表达式,将运算符写在操作数之后数据结构:两个栈S1和S2。S1临时存储运算符,S2存储最终结果。算法:(1)若取出的字符是操作数,则分析出完整的运算数,该操作数直接送入S2栈(2)若取出的字符是运算符,则将该运算符与S1栈栈... 阅读全文

posted @ 2015-10-01 11:10 joannae 阅读(897) 评论(0) 推荐(0) 编辑

字符串匹配——C++使用Regex

摘要: 需要#include匹配regex_match ("subject", std::regex("(sub)(.*)")//结果返回true主要regex_match需要匹配源字符串的每个字符,这点与regex_search不同查找返回一个匹配项 const regex pattern("(\\... 阅读全文

posted @ 2015-10-01 10:59 joannae 阅读(5949) 评论(0) 推荐(0) 编辑

线段树(segment tree)

摘要: 线段树是一棵二叉树,记为T(a, b),参数a,b表示区间[a,b],其中b-a称为区间的长度,记为L。数据结构:struct Node{ int left,right; //区间左右值 Node *leftchild; Node *rightchild; };... 阅读全文

posted @ 2015-10-01 10:53 joannae 阅读(217) 评论(0) 推荐(0) 编辑

平衡二叉树之伸展树

摘要: 伸展树(Splay Tree),或者叫自适应查找树,插入、查找和删除操作的时间都为O(logn)。伸展树的目的是使被查频率高的那些条目就应当经常处于靠近树根的位置。它的做法是在每次查找后,将被查找的节点splay到根节点。使用伸展树需要符合90-10法则:在实际情况中,90%的访问发生在10%的数据... 阅读全文

posted @ 2015-10-01 10:26 joannae 阅读(731) 评论(0) 推荐(0) 编辑

平衡二叉树之RB树

摘要: RB树(红黑树)并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。由于它的设计,任何不平衡都会在三次旋转之内解决。典型的用途是实现关联数组(如C++中的map和set) 红黑树满足以下特性: 1)每个结点要么是红的,要么是黑的。 2)根结点是黑的。 3)每个叶结 阅读全文

posted @ 2015-10-01 10:22 joannae 阅读(1765) 评论(0) 推荐(0) 编辑

平衡二叉树之AVL树

摘要: AVL树(命名来源于作者姓名,Adelson-Velskii和Landis),即平衡二叉树,满足以下的条件:1)它的左子树和右子树都是AVL树2)左子树和右子树的高度差不能超过1从条件1可能看出是个递归定义。AVL树中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树。AVL树插入节... 阅读全文

posted @ 2015-10-01 10:09 joannae 阅读(217) 评论(0) 推荐(0) 编辑

实现哈希表

摘要: 哈希表原理:输入(key, value) -> 通过散列函数生成hashkey -> 将(key,value)放入hashkey对应的bucket 散列函数满足以下的条件:1、对输入值运算,得到一个固定长度的摘要(Hash value);2、不同的输入值可能对应同样的输出值;3、散列函数的输出值尽量 阅读全文

posted @ 2015-10-01 09:57 joannae 阅读(354) 评论(0) 推荐(0) 编辑

经典贪心算法(哈夫曼算法,Dijstra单源最短路径算法,最小费用最大流)

摘要: 哈夫曼编码与哈夫曼算法哈弗曼编码的目的是,如何用更短的bit来编码数据。通过变长编码压缩编码长度。我们知道普通的编码都是定长的,比如常用的ASCII编码,每个字符都是8个bit。但在很多情况下,数据文件中的字符出现的概率是不均匀的,比如在一篇英语文章中,字母“E”出现的频率最高,“Z”最低,这时我们... 阅读全文

posted @ 2015-10-01 09:25 joannae 阅读(14552) 评论(2) 推荐(0) 编辑

NPC问题及其解决方法(回溯法、动态规划、贪心法、深度优先遍历)

摘要: NP问题(Non-deterministic Polynomial ):多项式复杂程度的非确定性问题,这些问题无法根据公式直接地计算出来。比如,找大质数的问题(有没有一个公式,你一套公式,就可以一步步推算出来,下一个质数应该是多少呢?这样的公式是没有的);再比如,大的合数分解质因数的问题(有没有一个... 阅读全文

posted @ 2015-10-01 08:49 joannae 阅读(8347) 评论(0) 推荐(0) 编辑

导航