0,堆的简介 数据结构中的堆是一种特殊的二叉树,不同于 Java 内存模型中的堆。 堆必须符合以下两个条件: 从第一点可以知道,堆适合用数组来存储。 第二点中,若父节点都大于等于左右子节点,则被称为大顶堆,反之则为小顶堆。 图-最大堆 1,堆的特性 2,堆的实现 3,堆的应用 3.1堆排序 利用堆这 ...
分类:
其他好文 时间:
2019-09-24 21:03:51
阅读次数:
96
堆相关的配置参数 -Xmx 最大堆空间 -Xms 初始堆空间大小,如果初始堆空间耗尽,JVM会对堆空间扩容,其扩展上限为最大堆空间。通常-Xms与-Xmx设置为同样大小,避免扩容造成性能损耗。 -Xmn 设置新生代大小,设置一个较大的新生代会减少老年代的大小,新生代的大小一般设置为整个堆空间的1/3 ...
分类:
其他好文 时间:
2019-09-18 20:56:01
阅读次数:
123
最大堆实现 代码 #!/usr/bin/envpython #-*-coding:utf-8-*- #单个叶子节点进行上浮调整位置 deffloat_up(array,start): parent=(start-1)//2 ifstart==0: retur... ...
分类:
其他好文 时间:
2019-09-13 20:01:42
阅读次数:
121
一、简介 前文介绍了《最大堆》的实现,本章节在最大堆的基础上实现一个简单的优先队列。优先队列的实现本身没什么难度,所以本文我们从优先队列的场景出发介绍topK问题。 后面会持续更新数据结构相关的博文。 数据结构专栏:https://www.cnblogs.com/hello-shf/category ...
分类:
其他好文 时间:
2019-09-05 13:46:53
阅读次数:
90
# 堆排序 def max_heap(heap,heapsize,i): # 构造最大堆(内部构建) left=2*i+1 right=2*i+2 larger=i if leftheap[larger]: larger=left if rightheap[larger]: larger=right... ...
分类:
编程语言 时间:
2019-08-18 21:27:15
阅读次数:
94
一、堆的性质 结构性:用数组表示的完全二叉树 有序性:任意一结点的关键字是其子树所有结点的最大值(或最小值) 二、最大堆的操作 1、创建一个空的最大堆,堆从下标为1的地方开始存放(根结点下标为1) 2、最大堆的插入 首先,把要插入的结点放在数组的末尾,假设下标为H->size + 1 再将它与父结点 ...
分类:
其他好文 时间:
2019-08-14 21:41:50
阅读次数:
87
"Berry" 是我为单片机设计的一款脚本语言,该语言具有资源占用小、平台无关、执行速度快和易于掌握等优点。在单片机上使用脚本语言可以提高单片机的二次开发能力以及调试效率,同时也是一种比较新颖的玩法。本教程将简要介绍在 STM32F103RBT6 单片机上移植 Berry 脚本语言的方法。教程的末尾 ...
分类:
编程语言 时间:
2019-07-30 12:39:08
阅读次数:
143
示例 指的是,以 Server模式启动,初始堆1024m,最大堆1024m,初始新生代256m,最大新生代512m,打印详细的GC日志,并输出到gc.$$.log。 常见虚拟机参数 client 客户端模式。 server 服务端模式,Java8 64 ...
分类:
编程语言 时间:
2019-07-27 09:29:27
阅读次数:
131
-Xmx 最大堆 -Xms 最小堆 -Xmn 年轻代大小 -XXSurvivorRation 代表Eden :Survivor 比值 一般根据对象的生存周期将堆内存分为若干不同的区域,一般情况将新生代分为Eden ,两块Survivor; —————————————————————————————— ...
分类:
其他好文 时间:
2019-07-16 15:24:06
阅读次数:
99
这里先简单说下最大堆的基本性质: 最大堆一定是完全二叉树 当父节点为 n 时,左孩子为 n 2 + 1,右孩子为 n 2 + 2 当孩子为 n 时,其父节点为: (n 1) / 2 这一点很重要,在后面初始化的时候会用到 父节点大于等于左孩子和右孩子,但左孩子不一定大于右孩子 了解以上基本性质之后, ...
分类:
编程语言 时间:
2019-07-16 08:27:45
阅读次数:
79