数据结构与算法
文章平均质量分 51
Hygge1p
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于表、栈、队列的一些认识
详细讲解见《数据结构与算法分析-Java语言描述》第2版一、知识准备:1、ADT(abstract data type)抽象数据类型,带有一组操作的一些对象的集合。简单一点说就是该集合可以有添加(add)、删除(remove)、包含(contains)这些操作。2、链表(linked list):由一系列节点组成,这些节点不必在内存中相连。每一个节点均含有表元素和到包含该元素后继...原创 2017-07-01 21:11:29 · 2346 阅读 · 0 评论 -
二叉树深度问题
**如题:具有1000个节点的二叉树的最小深度为多少?(第一层深度为1)**主要思路:1)了解二叉树是什么。2)如何实现最小深度。解析:二叉树的定义:每个节点都不能有多于两个的儿子。很好理解这句好,就是说,一个数分支最多不超过2个。所谓的最小深度粗略的理解就是一层一层的排满,每一个分支都是2个,然后排完所有节点的深度的就是最小深度。方法一:这个问题相当于一个数学的数列问题。第一层2^0=1,第二层2原创 2017-07-05 00:48:37 · 2765 阅读 · 0 评论 -
无序数组排序后的最大相邻差值求解
题目:有一个无序整型数组,如何求出这个数组排序后的任意两个相邻元素的最大差值?要求时间和空间复杂度尽可能低。(例如:无序数组 2、3、1、4、6,排序后是1、2、3、4、6,最大差值是 6-4=2)解法一:用一种较快的稳定排序算法(比如归并算法,时间复杂度N*logN)给原数组排序,然后遍历排好序的数组,每两个相邻元素求差,最终得到最大差值。该解法的时间复杂度是O(N*logN),在不改变原数组的情原创 2017-07-18 16:13:16 · 5468 阅读 · 1 评论 -
直接插入排序法的解析
直接插入排序法操作步骤:一、语言描述1、前两个作比较(1)把第二个赋值为临时变量tmp;(2)tmp与第一个作比较,如果第一个大于tmp,那么第一个移到第二个位置来,然后把tmp赋值给第一个。2、前三个作比较(1)把第三个赋值为临时变量tmp;(2)tmp与第二个作比较,如果第二个大于tmp,那么第二个移到第三个位置来,然后tmp与第一个作比较,如果第一个大于tmp,那么第一个移到第二个位置来;(如原创 2017-07-22 15:09:38 · 2075 阅读 · 0 评论 -
简单工厂、工厂方法模式和抽象工厂模式区别?
一、前言:昨天老表问了我一个问题,也就是标题,简单工厂、工厂方法模式和抽象工厂模式区别?也不算是问,就是他说了自己的见解,问我理解的对不对,这我就比较尴尬了,老表又是学霸,我在他面前根本就是小菜嘛,哈哈。老表是这样子说的,我把他话复制下来了↓ 三者的重点就是:围绕工厂类和产品类来进行讨论,其中工厂类可以是抽象的或是具体的,产品类也为抽象或是具体的,就一个总的概念而言,产品必须为抽象的(比如,水果、原创 2017-07-23 23:02:54 · 2614 阅读 · 0 评论 -
前、中、后缀表达式和前、中、后序遍历
认知 前缀表达式=前序遍历; 中缀表达式=中序遍历; 后缀表达式=后序遍历; 说法不同,但是实际意义是相同的。如何进行遍历 直接上案例,通过案例就可以知道是如何遍历的了: 那么对上面这个树进行前中后序遍历,结果如下: 前序遍历: -**ab+cde 中序遍历: ((a*b)*(c+d))-e (这里符号有优先级就在此处加上了括号) 后序遍历: ab*cd+*e- 看原创 2017-07-14 18:59:02 · 7435 阅读 · 0 评论
分享