摘要:
定义 背包是一种不支持从中删除元素的集合数据类型 它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素 用例也可以检查背包是否为空或者获取背包中元素的数量 迭代的顺序不确定且与用例无关 Java代码实现 源码 测试用例 测试结果 阅读全文
摘要:
定义 队列是一种基于先进先出(FIFO)的集合类型 Java 源码 测试用例 结果 阅读全文
摘要:
举例 ( 1 + (( 2 + 3 ) ( 4 5 ))) = 101 递归定义 算术表达式可能是一个数,或者是由一个左括号、一个算术表达式、一个运算符、另一个算术表达式和一个右括号组成的表达式 E.W.Dijkstra算法思想 (表达式由括号、运算符和操作数(数字)组成) 将操作数压入操作数栈 将 阅读全文
摘要:
定义 栈是一种基于后进先出(LIFO)策略的集合类型 Java 源码(动态调整数组大小版本) 源码(链表实现版本) 测试用例 测试结果 阅读全文
摘要:
参考链接 "http://blog.csdn.net/zml_2015/article/details/62875558" 命令 结果 阅读全文
摘要:
问题描述 给定数组中只有“1”,“2”,“3”三种数字,且个数不等 排序 最终结果的顺序为:所有的1在前,所有的2在中间,所有的3在后 如:原数组:1232313231,排序后:1112223333 解决思路 将前部和后部各排在数组的前边和后边,中部自然就排好了。 算法伪代码 public clas 阅读全文
摘要:
算法的本质 用三重循环来清算每个点 对 缩小相邻任意“点对儿”距离的贡献 即每个顶点都有可能使得另外两个顶点之间的距离变短 贡献核心在于两边之和大于第三边 清算完成后即得任意两点的最短路径 算法的基本思想 最开始只允许经过1号顶点进行中转 接下来只允许经过1和2号顶点进行中转 …… 允许经过1~n号 阅读全文
摘要:
算法思想 设G=(V,E)是一个带权有向图 把图中顶点集合V分成两组 第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将加入到集合S中,直到全部顶点都加入到S中,算法就结束了) 第二组为其余未确定最短路径的顶点集合(用U表示) 按最短路径长度的递增次 阅读全文