
【数据结构和算法】
小烽努力变强
自己选择的路跪着也要走完!
展开
-
【数据结构和算法】动态规划(参考灯神)【Java实现】
前言首先本文参考灯神视频总结,配合视频食用效果更佳哦!动态规划一、背景首先了解斐波那契数列,通过斐波那契数列引入动态规划问题,由于递归存在重叠子问题,导致时间复杂度很大,可不可以考虑从递归的条件网上“递归”呢?这样就能够使用之前的条件,达到减少运算的效果,这就是动态规划。(纯个人理解)二、例题1.问题:一个人可以选择做下面8个任务,红字代表任务的工资,横轴表示时间段...原创 2019-11-30 16:12:47 · 358 阅读 · 0 评论 -
彻底理解递归
依然记得当年大一刚接触递归那一脸蒙蔽的感觉,那时候就觉得这真是一个非常神奇的算法。不过通过我不断琢磨以及自己写个递归到IDE不断debug,我总算小有收获,下面主要给新手小白介绍一下我看的书籍对递归的讲解。个人觉得非常不错,值得记录。首先我做个简单的总结:递归其实就是函数调用自己,那么可以这么认为每次返回都是到执行这个递归函数的末尾处(刚从递归函数出来)。继续执行下面的函数体部...原创 2019-03-19 23:57:07 · 485 阅读 · 0 评论 -
【数据结构和算法】中序线索化二叉树
详细了解请参考https://blog.youkuaiyun.com/UncleMing5371/article/details/54176252一、线索化二叉树的实现下面介绍的是我对中序化线索化二叉树理解,我会用尽量简洁语言描述关键步骤。1.线索化二叉树,所以线索化的方法是写在二叉树里的,而且pre节点也是定义在二叉树的成员变量里的;2.涉及到二叉树因此遍历,递归少不了,先确定递归终止条件...原创 2019-04-01 21:35:57 · 847 阅读 · 0 评论 -
【数据结构和算法】二叉排序树、二叉搜索树、二叉查找树(Java实现)
一、概念任何节点的键值一定大于其左子树中的每一个节点的键值,并小于其右子树中的每一个节点的键值。二、二叉排序树的创建&&小技巧。二叉树有一个重要的算法就是递归,当要处理子树时一般都会用到,而能够方便的使用递归的一定又是节点。所以通常是在树里调用节点的方法,在节点里完成一些递归操作。下面是构造二叉排序树的核心方法:public void add(Node...原创 2019-10-02 10:56:06 · 340 阅读 · 0 评论 -
【数据结构和算法】时间复杂度
一、时间复杂度概念&&时间复杂度包括平均时间复杂度和最坏时间复杂度,一般讨论的都是最坏情况下的时间复杂度 ;&&一般较少讨论空间复杂度;二、常见的时间复杂度三、计算步骤1.了解算法运行步骤,写出算法的句频(基本操作语句的重复执行次数); 算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。2.用常数1代替运行时间中...原创 2019-09-06 16:20:45 · 370 阅读 · 0 评论 -
【数据结构和算法】常见的数据结构笔试题
队列假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()队列中元素的个数: (rear-front+QueueSize)%QueueSize根据题意得:(rear - 47 + 60)% 60 = 50=> rear = 37栈在一个栈的输入序列为12345 下面哪个不可能是栈的输出序列...原创 2019-09-20 17:53:41 · 1086 阅读 · 0 评论 -
【数据结构和算法】二分法查找
一、概念:二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。二、算法思路二分法查找的思路如下:1.首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。2.如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。3.如果某一步数组为空,则表示找不到目标元素。4...原创 2019-09-26 00:14:30 · 466 阅读 · 0 评论 -
【数据结构和算法】平衡二叉树AVL树(Java版)
一、背景二叉排序树虽然对查询快速,但是对于1234567这种数值,会变成一种单链表,由此基于二叉排序树再设计了一种平衡二叉树,二叉排序树是为平衡二叉树服务的;二、概念左子树和右子树的高度差的绝对值不超过1的二叉排序树就是平衡二叉树;1.二叉排序树;2.左子树和右子树的高度差的绝对值不超过1。三、代码实现核心思想:(一)平衡判定在二叉排序树增加节点...原创 2019-10-02 21:40:58 · 938 阅读 · 0 评论