一、物理结构和概念结构 学习堆必须明确,堆有两个结构,一个是真实存在的物理结构,一个是有助于理解的概念结构。 1. 堆一般由数组实现,但是我们平时在理解堆的时候,会把他构建成一个完全二叉树结构。堆分为大根堆和小根堆:大根堆,就是这颗树里的每一个结点都是以它为根结点的树中的最大值;小根堆则与之相反。 ...
分类:
编程语言 时间:
2020-04-23 19:35:27
阅读次数:
79
链接 https://www.acwing.com/problem/content/1129/ 题目 农夫John发现了做出全威斯康辛州最甜的黄油的方法:糖。 把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。 当然,他将付出额外的费用在奶牛上。 农夫John很狡猾 ...
分类:
其他好文 时间:
2020-04-21 12:43:32
阅读次数:
114
(1)时间频度:一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。 (2)时间复杂度:算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记 ...
分类:
编程语言 时间:
2020-04-20 14:04:58
阅读次数:
66
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区:堆内存用于存放由new创建的对象和数组。 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不 ...
分类:
其他好文 时间:
2020-04-20 13:55:26
阅读次数:
58
前言 推排序中的小顶堆的建立,需要注意的是,哪怕是相同的数,不同的插入顺序最终建立堆都不一样。 题目 将一系列给定数字插入一个初始为空的小顶堆 。随后对任意给定的下标 ,打印从 到根结点的路径。 输入格式 组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。 ...
分类:
编程语言 时间:
2020-04-19 15:05:09
阅读次数:
184
监控管理 通过引入spring boot starter actuator,可以使用SpringBoot提供的准生产环境下的应用监控和管理功能。我们可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计、健康等指标信息 SpringBoot整合监控管理 步骤 1. 引入spring boot ...
分类:
编程语言 时间:
2020-04-14 19:01:31
阅读次数:
116
堆是一个二叉树,其中每个父节点的值都小于或等于其所有子节点的值。整个堆的最小元素总是位于二叉树的根节点。 python的heapq模块提供了对堆的支持。 堆数据结构最重要的特征是heap[0]永远是最小的元素 1.heapq.heappush(heap,item) 注:heap为定义堆,item增加 ...
分类:
编程语言 时间:
2020-04-14 17:08:22
阅读次数:
166
目录 1. 冒泡排序 2. 选择排序 3. 插入排序 4. 快排 5. 堆排 6. 归排 1. 冒泡排序(最好是O(n), 最坏O(n2)) 原理:拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较,第一轮结束后最上面那个一定是最大的数 1 def bubbl ...
分类:
编程语言 时间:
2020-04-14 12:45:57
阅读次数:
93
尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么? 主要有三种类型:内存泄露、内存碎片和内存崩溃 内存崩溃是内存使用最严重的结果,主要原因有数组访问越界、写已经释放的内存、指针计算错误、访问堆栈地址越界等等。碎 ...
分类:
其他好文 时间:
2020-04-11 23:59:52
阅读次数:
119
堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。 两种类型的概念如下:大根堆(最大堆):每个结点的值都大于或等于左右孩子结点小根堆(最小堆):每个结点的值都小于或等于左右孩子结点 以大根堆为例子:【堆是无序的】 堆的三种操作:插入,删除,构建。 ...
分类:
编程语言 时间:
2020-04-09 19:06:52
阅读次数:
101