堆排序基本概念堆是一种数据结构,它是将一些数据放在物理数据结构:数组或者vector中;逻辑数据结构是完全二叉树。如果根节点的值大于两个子节点值,就是大根堆;如果根节点的值小于两个子节点值,就是小根堆。用堆这种数据结构来实现排序,就是堆排序。该算法的操作主要有minheapify:最小堆处理,复杂度... ...
分类:
编程语言 时间:
2016-08-31 17:11:39
阅读次数:
253
版权声明:本文为博主原创文章,未经博主允许不得转载。 题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。 解题思路: 首先看牛客网给出的测试用例: 一般对于树的操作不像链表一样,操作更复杂,如果使用循环遍历的话,对于非完全二叉树规律难寻,一般通用 ...
分类:
编程语言 时间:
2016-08-24 17:29:10
阅读次数:
205
按照严蔚敏那本教材上的说法:一个深度为k,节点个数为 2^k - 1 的二叉树为满二叉树。这个概念很好理解, 就是一棵树,深度为k,并且没有空位。 首先对满二叉树按照广度优先遍历(从左到右)的顺序进行编号。 一颗深度为k二叉树,有n个节点,然后,也对这棵树进行编号,如果所有的编号都和满二叉树对应,那... ...
分类:
其他好文 时间:
2016-08-20 19:16:27
阅读次数:
1650
试写一算法,完成判定某二叉树是否为完全二叉树的功能...
分类:
其他好文 时间:
2016-08-19 08:37:03
阅读次数:
109
题目链接: http://codeforces.com/problemset/problem/696/A 题目大意: 一个满二叉树,深度无限,节点顺序编号,k的儿子是k+k和k+k+1,一开始树上的边权都为0 N(N<=1000)个操作,操作两种,1是从u到v的路径上的所有边权+w,2是求u到v的边 ...
分类:
其他好文 时间:
2016-08-16 00:12:16
阅读次数:
171
堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆。 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆。 http://www.cnblogs.com/hua ...
分类:
其他好文 时间:
2016-08-15 07:50:04
阅读次数:
175
堆堆,也叫二叉堆,就是完全二叉树二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小... ...
分类:
其他好文 时间:
2016-08-14 14:22:27
阅读次数:
131
做过类似感觉的题,但是就是没办法往状压上靠,找不到之间的联系。 题意:给你一个p,n张无中生有,m张伤害牌。抽一张牌,问杀死他的概率是多大。 20张牌直接存状态,往下转移的时候如果叶子数大于等于无中生有数加一就是边界,不能更新了。因为想象一颗满二叉树,伤害牌就是叶子,无中生有就是里面的。正好对应了这 ...
分类:
其他好文 时间:
2016-08-12 16:41:13
阅读次数:
77
一、本次实验环境:腾讯云虚拟主机centos7.2上配置pyenv多版本python管理器,并安装交互式web编辑器jupyter,python版本为3.5.2,利用xshell远程ssh连接腾讯云主机,操作简易、方便。二、对堆的简单认识:1、堆是局部有序,且是一棵高度为O(lgN)的完全二叉树,其基本操作至多与..
分类:
其他好文 时间:
2016-08-11 23:07:06
阅读次数:
355
这个堆的实现采用数组存储的完全二叉树实现。 最近有点烦躁,先是跳槽到了一个外包公司,感觉2016有点坑,另外一件事就是老婆怀孕了,但是在家里没人照顾,很担心。 这个堆的实现就暂时不优化了,基本的插入,删除实现。 还有,NJ,这个城市真热。 这周希望把剩下的几个数据结构给写了@2016-08-11 0 ...
分类:
其他好文 时间:
2016-08-11 00:56:47
阅读次数:
243