摘要:
一,子集和问题的动态解1)子集和问题:给定一组整数构成的一个集合S,并给定另一个整数W,问:在S中是否存在一个子集A 包含于(属于) S,有A中所有元素的和等于W?(∑a(i)εAa(i) = W ?)2) 很明显,子集和问题是NPC问题,证明参考《算法导论第二版中文版》第627页。既然它是NPC的... 阅读全文
摘要:
详细内容参考:《算法导论 第二版-中文版》第644页内容一,基本介绍1,点覆盖问题属于NPC问题,目前还没有多项式时间算法精确地求解该问题。因而,下面介绍了一种近似解法,可以在多项式时间内找到点覆盖问题的一个近似解,该近似解有多么近似呢?最后证明该近似解不会超过精确解的两倍。2,点覆盖的定义:对于图... 阅读全文
摘要:
1,对于线性表而言,里面的元素是无序的,可以随意地将新元素增加到线性表中而不需要考虑该元素在线性表中的位置。但是,对于有序表而言,其中的元素是按照某种方式进行排序的,因此在有序表中插入元素时,需要按照顺序将该新元素放置到有序表的合适的位置。但由于有序表与线性表有很多相似的地方,因此,下面通过继承线性... 阅读全文
摘要:
在Windows下,U盘能够正常地读写文件(能复制粘贴),但发现有个文件打不开。然后在Linux下,对U盘只能读不能写。提示:Read only system. 参考:https://bugs.launchpad.net/ubuntu/+bug/228608 1,# tail -f /var/log 阅读全文
摘要:
参考《算法导论第二版P222页)一,如何把现实的问题转变成数学问题?即数学建模的思路?1,问题描述:现有一组相互竞争的活动,如何调度能够找出一组最大的活动(活动数目最多)使得它们相互兼容?2,问题转化:首先,按活动的结束时间单调递增进行排序。那么,为什么要按结束时间排序呢?这个问题留到后面解释。其次... 阅读全文
摘要:
1,对元素进行排列时,元素之间需要进行比较,因此需要实现Comparable接口。即,>. 更进一步,如果允许待比较的类型可以和它的父类型进行比较,则需要写成:, 其中 表示 T 的任意超类。2,InsertionSortArray.java 类实现了从小到大顺序以插入排序的方式对数据进行排序。3,... 阅读全文
摘要:
1,采用选择排序对元素进行排列时,元素之间需要进行比较,因此需要实现Comparable接口。即,>. 更进一步,如果允许待比较的类型可以和它的父类型进行比较,则需要写成:, 其中 表示 T 的任意超类。2,SelectionSortArray.java 实现了选择排序的迭代形式和递归形式。具体代码... 阅读全文
摘要:
1,个人感觉二叉树的实现主要还是如何构造一颗二叉树。构造二叉树函数的设计方法多种多样,本例采用 addNode 方法实现。以下程序通过定义内部类来表示二叉树的结点,然后再实现了二叉树这种数据结构的一些基本操作。2,说说以下程序的一些不足:a,56行中的判断树是否为空时,依据根结点的数据域是否为空来判... 阅读全文
摘要:
树是编程中一种常用的数据结构。以前在学习数据结构时,总想着如何实际地实现出一颗二叉树出来,现在参考了《数据结构与算法分析 JAVA语言描述 第二版》之后,照着书中的例子实现了一颗二叉树,个人感觉书上面的二叉树实现操作比较复杂。下面将我学到的一些知识记录下来:1,定义树的操作的基本接口,其中不包括插入... 阅读全文
摘要:
1,首先总结一下线性表(分为顺序表和链接表,【即顺序存储结构和链式存储结构的区别】)和栈(顺序栈和链接栈)还有队列(顺序队列和链接队列)的JAVA类库中的实现:java.util.ArrayList 实现了顺序表,java.util.LinkedList 实现了链接表的功能。java.util.Ar... 阅读全文