C++
倔强超
这个作者很懒,什么都没留下…
展开
-
二叉树的深度优先遍历(DFS)与广度优先遍历(BFS)
二叉树的深度优先遍历(DFS)与广度优先遍历(BFS) 深度优先遍历:从根节点出发,沿着左子树方向进行纵向遍历,直到找到叶子节点为止。然后回溯到前一个节点,进行右子树节点的遍历,直到遍历完所有可达节点为止。 广度优先遍历:从根节点出发,在横向遍历二叉树层段节点的基础上纵向遍历二叉树的层次。 DFS:ABDECFG BFS:ABCDEFG DFS实现: 数据结构:栈 父节点入栈,父节点出栈,先右...转载 2019-02-28 13:32:19 · 359 阅读 · 0 评论 -
一定能懂的0-1背包视频讲解
点击视频讲解原创 2019-02-25 20:44:34 · 299 阅读 · 0 评论 -
C++代码 快速排序总结
实现快速排序算法的关键在于先在数组中找到一个数(基数),接下来把数组分为两部分,把小于该数的数字移到数组的左边,把大于该数的数字移动数组的右边。等于该数的数字不动。 先给一张通俗易懂的过程演示图 讲解第一次排序 3 4 1 7 6 2 0 基数:3 第一步:首先找一个基数,以数组第一个数为基数,保存基数。定义两个指针start,e...原创 2019-03-29 18:07:37 · 226 阅读 · 0 评论 -
通俗易懂的堆排序C++实现
堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图: 同时,我们对堆中的结点按层进行编号,将这种逻辑结...转载 2019-04-04 20:38:10 · 2315 阅读 · 4 评论 -
C++实现归并排序
#include<iostream> #include<vector> using namespace std; void merge(vector<int>&arr, int start, int mid, int end) { vector<int> tmp; int i = start; int j = mid+1; ...原创 2019-04-04 20:41:33 · 2393 阅读 · 0 评论 -
c++中4个与类型转换相关的关键字总结
C++中,四个与类型转换相关的关键字:static_cast、const_cast、reinterpret_cast、dynamic_cast。 1.static_cast------运算符完成相关类型之间的转换** 特点:静态转换,在编译处理期间。 使用场景:主要用于C++中内置的基本数据类型之间的转换,但是没有运行时类型的检测来保证转换的安全性。如在同一类层次结构中的一个指针类型到另一个...原创 2019-02-21 10:56:53 · 341 阅读 · 0 评论 -
用最少数量的箭引爆气球
/* 思考:首先将样例画图,找出规律理解题意,其次举例子,1个气球最少用1个箭,2个重叠气球最少用一个箭,3个重叠气球最少用一个箭 因此,尽量使气球重叠部分最多一些,那么如何算法化呢?当然是排序,然后遍历维护射击区间。 1,排序,按照左端点。 2,遍历气球数组,维护一个设计区间,初始化就是第一个气球的区间,同时贪心尽可能多的击穿更多气球,然后更新设计区间。 3,直到没有新的气球可以被击穿,那么增加...原创 2019-05-18 22:00:04 · 188 阅读 · 0 评论