摘要:一、01背包问题介绍 背包问题是经典的动态规划问题之一; 常见的01背包问题就是说有一堆物品,现在要装入一个容器中,这些物品的重量和价值各不一致,而容器的重量又是有限的,没种物品只能装1个或者不装(0个),求当重量限定为w时,这些物品能装进去组合成的最高价值是多少? 分析:我们首先将物品排成一排(随
阅读全文
摘要:1、静态查找 首先无论是静态查找还是动态查找,都要有查找的对象,也就是包含很多同类型数据的“表”,这个“表”可以理解为一个由同类型数据元素组成的一个“集合”,该集合可以用各种容器来存储,例如数组、链表、树等,我们统称这些存储数据的数据结构为——查找表。可见,查找表有时是我们传统意义的表,有时候是很复
阅读全文
摘要:题目内容: 给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少? 给定整数数组A和数组的大小n,请返回题目所求的答案。 测试
阅读全文
摘要:大家可能都知道二叉树中叶子节点(度为0)与度为2的节点数的关系为 但是知道为什么的人却不多,下面就是这个定理的证明 树(不仅仅是二叉树)中每个节点头上都有一个支路,但唯独有一个是例外——根节点 所以我们可以得到树的一个重要结论①: 支路总数怎么计算? 设度为 i 的节点有 xi 个,所以支路总数等于
阅读全文
摘要:数据结构,物理结构,存储结构,逻辑结构……是不是很晕? 今天教大家来区分并且判别各个结构。 什么是逻辑结构? 简单说,逻辑结构就是数据之间的关系。而按数据之间的关系来说,逻辑结构大概可以分为两种:线性结构和非线性结构(集合、树、网)。 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多
阅读全文
摘要:查找无序数组的中位数,要想时间复杂度为O(n)其实用计数排序就能很方便地实现,在此讨论使用快速排序进行定位的方法。 1、中位数定义 2、算法思想 3、Java代码实现 4、时间复杂度分析 5、附录 中位数一般两种定义: 第一种: 排序后数组的中间位置的值,如果数组的个数是偶数个,则返回排序后数组的第
阅读全文
摘要:首先,与初始状态无关分为几种情况 1、算法复杂度与初始状态无关; 2、元素总比较次数与初始状态无关; 3、元素总移动次数与初始状态无关。 【其实还有一种就是总排序趟数与初始状态无关,由于分析简单,除了快速排序的排序次数(递归深度)与关键字选择(初始状态)有关,还有一个优化后的冒泡排序和后序是否有序有
阅读全文