摘要: (1) XML预处理读取test.xml并修改url节点下的localhost信息,以保证预览和下载用户所需正确资源。过程如下:List list = document.selectNodes("allresource/resourceitem/url");Iterator iter = list.iterator();while (iter.hasNext()) {Element url = (Element)iter.next();String ur=url.getText();String str1=ur.substring(0,7);String str2=ur.s 阅读全文
posted @ 2013-10-13 20:56 YiminDu 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 1.图具有生成树当且仅当图是连通的;同构树,包含5个节点的图具有3种互不同构的形式;T1,T2根树,根为r1,r2,T1,T2同构的等价条件存在从T1的节点集到T2的节点集的双射函数,满足(a)vi,vj邻接 iff f(vi),f(vj)邻接(b)f(r1)=r2,为同构根树;不同构根树可能是同构自由树;同构二叉树除了要满足同构根树的条件以外左右孩子也要对应;三个节点的二叉树有5种互不同构的形式;n个节点的二叉树有C(2n,n)/(n+1)种互不同构的形式。2.有限状态机是具有内部记忆的抽象机模型,有限状态自动机是特殊类型的状态机,和语言相关,输出不仅依赖于输入而且依赖于系统的状态。3.有限 阅读全文
posted @ 2013-10-13 20:44 YiminDu 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1.一个序列是一个表,表里面的元素有序,S是序列,Sn表示序列的第n项,把n叫做序列的下标。2.算法复杂度是问题分为三种:1.在多项式时间立可解,可行的,易处理;2.在多项式时间里面解决不了;3.根本不可解;NP完全问题:有很多可解的问题还有不确定的状态,被认为是难求解的,但是没有一个问题被认为是难求解得。(例子:旅行商问题)3.数论,任何大于一的整数都可以写成素数乘积的形式,此外,如果这些素数按非递减顺序写出,这种分解是唯一的;素数的个数是无限的(证明的构造:用所有比一个数小的素数乘积加一)。4.最大公因子:gcd(a,b);最小公倍数:lcm(a,b);两个数的最大公约数和最小公倍数之积等 阅读全文
posted @ 2013-10-13 20:42 YiminDu 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 1.划分:一个由集合x的非空子集的整体组成的s,如x的每一个元素都只属于s的某一个元素,s就成为x的一个划分。(所划分的集合之间不交叉)2.二元组基本可以表示所有的数据结构,如lisp点对。3.集合x到y的函数f是笛卡尔积x*y的子集,每一个x都有唯一的y与之对应,不研究多值函数。MD5是哈希函数,已经被攻破。4.关系数据库基于关系的概念;关系可以想象成一张表;x到y的关系r,是笛卡尔积的子集,因此关系的元素也是序偶,关系也有定义域和值与;可以用有向图来表示关系,用来表示一个集合上的关系,叫做关系有向图;还有集合表示法,列表法;由关系图引出有向图,有向边,圈,从而可以用图表示二元关系;5.对于 阅读全文
posted @ 2013-10-13 20:40 YiminDu 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 1.逻辑语言与自然语言不一对一。逻辑的定义比较严密。自然语言中两个都是对的但是两个相或是假的,例子,班里面一个班长,小张和小李竞争,或者小张是,或者小李是,都对。若小张是同时小李也是,前面的话则有问题,前面说的或是不可兼或。而在逻辑中或是可兼或的,可以是其中一个为真时为真,也可以是兼或(同时)为真时为真。而自然语言的或往往不具备兼或性。(inclusive―or 兼或)2.逻辑语言中的命题组合之间未必相关,一般语言的命题组合之间一般有联系。经典逻辑是二元逻辑。三元逻辑包括:真,假,不知道。不存在一元逻辑,因为只有一个值,真即假,无意义。3.逻辑的计算优先次序,非,合取,析取。―>蕴含符号 阅读全文
posted @ 2013-10-13 20:34 YiminDu 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 由于Java支持多线程,具有并发功能,从而大大提高了计算机的处理能力。在各线程之间不存在共享资源的情况下,几个线程的执行顺序可以是随机的。但是,当两个或两个以上的线程需要共享同一资源时,线程之间的执行次序就需要协调,并且在某个线程占用这一资源时,其他线程只能等待。例如生产者和消费者的问题,只有当生产者生产出产品并将其放入货架时,消费者才能从货架上取走产品进行消费。当生产者没有生产出产品时消费者是没法消费的。同理,当生产者生产的产品堆满货架时应该暂停生产等待消费者消费。在程序设计中,可用两个线程分别代表这里的生产者和消费者,可将货架视为任一时刻只允许一个线程访问的临界资源。 在这个问题中,... 阅读全文
posted @ 2013-10-13 20:28 YiminDu 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 1.函数指针数组。double add(double , double);double sub(double , double);double (*operate[])(double , double) = {add , sub}a = (*operate[0])(1 , 2);2.const int *p; p = &i; (值不变,址可变,只读的指针,可在不需要其改变值的函数中); 不等于 const int i = 5;int * const p = &i;p是常量,需要初始化,否则矛盾(址不变,值可变)3.复杂声明:char * const * (*next)();(1 阅读全文
posted @ 2013-10-13 20:19 YiminDu 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 一、用数组存储的堆和由此堆上实现的简单排序。虽然对排序保证了最坏情况下的O(n log n)的性能,但对于常见输入,最快的堆排序也比简单快速排序慢。 1 #include 2 using namespace std; 3 int x[100]; 4 void siftup(int n) 5 { 6 int p; 7 int i = n; 8 while(1){ 9 if(i == 1)10 break;11 p = i / 2;12 if(x[p] n){23 break;24 }25 if(c + 1 >n;39 ... 阅读全文
posted @ 2013-10-13 20:06 YiminDu 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 快速排序是比较经典的算法,所以我把在编程珠玑上的讲解整理了一下,也当给自己理清思路。在某些特定情况下,在空间和时间上应该还有很多优化的策略,所以以后会继续学习优化的方法。一、单向划分的快排实现该程序不会导致无限递归调用,因为每次都排除了x[m],与二分搜索会终止的原理一样。当输入数组是不同元素的随机排列时,该快速排序的平均时间复杂度是O(n log n),栈空间为O(log n).任何基于比较的排序至少需要O( n log n)次比较,因此快速排序接近最优算法。c库函数的快速排序算法的通用接口开销很大,所以本程序可能适合与一些表现良好的应用程序,但在一些常见的输出下,本程序可能会退化为平方时间 阅读全文
posted @ 2013-10-13 14:38 YiminDu 阅读(341) 评论(0) 推荐(0) 编辑