![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 95
sunny_yeah_
跟随大神脚步的菜鸟一枚
展开
-
数据结构:二叉树的构建、前中后序遍历(递归vs非递归)思路及代码
二叉树的基本操作二叉树的创建构建二叉树的类对象先序遍历递归非递归中序遍历递归非递归后序遍历递归非递归层序遍历求解二叉树的高度最大高度最小高度二叉树的创建构建二叉树的类对象在创建一棵二叉树之前,我们先创建一个二叉树的类对象Tree。类中包含的成员变量有:val、left、right,函数接口包括:先序遍历、中序遍历、后序遍历、层序遍历、二叉树高度typedef int TreeElemt;class Tree{public: enum Mode{NUM, CHAR}; private:原创 2020-07-03 21:27:35 · 934 阅读 · 1 评论 -
开开心心学算法:动态规划——小白都懂
动态规划入门来点感性的认识来个常用例子感受感受最长公共子序列reference以下是我自己对于动态规划的一点点理解,如果有什么偏差之处还望各位大佬能够指点一二。【注】以下例子均为理想状态下,不要考虑各种意外的可能性,谢谢!来点感性的认识下面我们先对动态规划有一个感性的认识。动态规划的本质是寻找最优解,也就是说,对于一个问题,它可能会存在很多个解,但是其中有一种方法是这些解中最好的。比如说,我从武汉到深圳,我可以坐绿皮火车,坐动车,坐飞机,甚至是坐大巴,我们现在要找到一种最快到深圳的方式,那原创 2020-05-09 17:58:35 · 338 阅读 · 0 评论 -
开开心心学算法:分治策略求解问题
分治策略求解问题最大子数组问题问题描述及思路代码时间复杂度分析最大子数组问题问题描述及思路该问题的特点,数组必须有正有负。问题描述:找到数组中连续相加和最大的子数组;思路:将原问题分解成子问题进行求解子问题包括,两个与原问题形式相同的子问题,一个与原问题形式不同的子问题假设原问题的区间为[low, high],则与原问题形式相同的子问题的区间分别为[low, mid]和[m...原创 2020-02-29 17:47:15 · 276 阅读 · 0 评论 -
开开心心学算法:排序算法
排序算法插入排序非递归方法递归方法采用二分法的插入排序归并排序插入排序插入排序的操作与起牌的方式类似,从桌上放置的一堆牌中抽取出一张牌,与手中已有序的牌进行比较,将其插入到合适的位置,然后再从桌面上抽取下一张牌,如此反复直到桌面上的牌被抓完。而 插入排序的原理也是这样的,将一个序列分成左右两部分,左边代表有序的牌,右边代表桌面上待抽取的牌。初始时,我们将序列的第一个元素作为已经抓在手里的第...原创 2020-02-24 21:46:50 · 161 阅读 · 0 评论 -
开开心心学算法:堆排序算法的图文详解 & 代码示例
堆排序算法的图文详解创建初始化堆堆排序过程主要由三个步骤组成:构建大顶堆/小顶堆构建初始化堆排序贯穿真个堆排序过程的一个重要算法就是对堆进行调整。下面我们按照上面三个步骤介绍详细的堆排序过程。(这里我们以大顶堆为例展开介绍)创建初始化堆给定一个数组Array=[4, 12, 3, 2, 16, 10, 14, 8, 7]Step1:构建一个完全二叉树Step2:初始化大顶堆...原创 2018-12-11 20:07:03 · 2358 阅读 · 5 评论