给出一个图的结构,输出其拓扑排序序列,要求在同等条件下,编号小的顶点在前。 用小顶堆(优先队列)实现. 样例如下: AC ...
分类:
编程语言 时间:
2017-06-11 14:15:23
阅读次数:
157
位于代码event-internal.h中。 event_base类似事件的集合,你创建一个事件,必须将该事件指定一个集合。 struct event_base { 50 const struct eventop *evsel; /*evsel和evbase就类比与类和对象之间的关系,evbase是 ...
分类:
Web程序 时间:
2017-05-19 23:55:50
阅读次数:
286
最近面试一直问到排序,老是各种搞混,特地来整理整理 先盗用一张图: 说明: 内部排序基于内存,外部排序是数据量大,而内存与外存的相结合的排序 一、插入排序 关键词:插入,将数字插入到一条已经排好序的有序表中。 1.1直接插入排序 假设要5,4,2,3,1 要升序排列。 i=1 5 i=2 5,4 = ...
分类:
编程语言 时间:
2017-04-23 22:26:51
阅读次数:
150
堆简介 堆并不是STL的组件,但是经常充当着底层实现结构。比如优先级队列(Priority Queue)等等。 堆是一种完全二叉树,因此我们可以用数组来存储所有节点。在这里的实现中,采用了一个技巧:将数组中索引为0的元素保留,设置为极大值或者为极小值(依据大顶堆或者小顶堆而定)。那么当某个节点的索引 ...
分类:
编程语言 时间:
2017-04-09 18:02:30
阅读次数:
225
转自:PriorityQueue 本文github地址 Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地 分析PriorityQueue每个操作的具体过程和时间复杂度,将让读者建立对PriorityQueue建 ...
分类:
其他好文 时间:
2017-03-17 19:04:24
阅读次数:
270
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 本题目我第一个想到了用小顶堆来做,不是很难,直接上代码: /** * Definition for s ...
分类:
其他好文 时间:
2017-02-01 13:27:01
阅读次数:
174
「仅为草稿,尚未详解」 堆排序(C语言版) 走进堆排序 什么是堆 堆实质就是一颗完全二叉树,其任何一非叶子节点满足下列性质。 i=1,2,3...n/2 说明: 既然是完全二叉树,我们就可以用数组来表示! 堆根据上面的性质又分为: 从中不难发现,大顶堆从上往下依次键值减小,小顶堆从上向下键值增大。 ...
分类:
编程语言 时间:
2016-12-18 23:09:16
阅读次数:
346
package findMinNumIncludedTopN;/** * 小顶堆 * @author TongXueQiang * @date 2016/03/09 * @since JDK 1.8 */public class MinHeap { int[] heap; int heapsize; ...
分类:
编程语言 时间:
2016-12-12 19:32:42
阅读次数:
245
首先,看一下堆的定义; n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆) 情形2:ki >= k2i 且ki >= k2i+1 (最大化堆或大顶堆) 其中i=1,2,…,n/2向下取整; 该排序的 ...
分类:
编程语言 时间:
2016-11-24 14:32:40
阅读次数:
157