- 博客(10)
- 资源 (2)
- 收藏
- 关注
转载 结构之美——优先队列基本结构(四)——二叉堆、d堆、左式堆
实现优先队列结构主要是通过堆完成,主要有:二叉堆、d堆、左式堆、斜堆、二项堆、斐波那契堆、pairing 堆等。 1. 二叉堆 1.1. 定义完全二叉树,根最小。存储时使用层序。 1.2. 操作(1). insert(上滤)插入末尾 26,不断向上比较,大于26则交换位置,小于则停止。 (2). deleteMin(下滤)提取末尾元素,放
2015-01-04 18:35:19 619
转载 二叉堆
满足如下结构性和堆序性,即为二叉堆。结构性质:堆是一棵被完全填满的二叉树,有可能的例外是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树。容易证明,一棵高为 h 的完全二叉树有 2h 到 2h+1-1 个节点。这意味着完全二叉树的高是⌊ log N ⌋,显然它是 O( log N )。一个重要的观察发现,因为完全二叉树这么有规律,所以它可以用一个数组表示而不需要使用链。
2015-01-04 18:29:51 571
转载 块状数组
例题本沙茶觉得块状数组又好写又有用(其实就是另一种朴素)……只是那个O(sqrt(n))的复杂度比较大而已(其实如果加上常数的话它并不比Segplaytree慢多少)编程技巧:(1)每块长度设为m=floor(sqrt(n)),最后不足长度的不补值,设n0为总块数(显然n0=(n-1)/m+1);(2)设立LEN[i]=第i块的实际长度(显然除了最后一块都是m),可以在建立块状数组
2015-01-04 18:10:19 1450
转载 【块状树】
orz lzt的神题发现我根本不会块状树…………写了好久调了……一上午是有了总结一下块状树是分块数据结构,即把树分为根号n块,块内暴力快外整体查询。【据研究显示(nlogn)^1/2会更快】先分块,分块的时候注意要存张树的图和块的图查询的时候块内暴力如果连到块外整个块一起查如果要加点,若能合并到上一个块则合并,若不行则新开一个块错误点:(自己犯2就不说了)1、不
2015-01-04 18:09:04 1220
转载 openMP 并行编程 基础
1、fork/join并行执行模式的概念OpenMP是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的。 前面一篇文章中已经试用了OpenMP的一个Parallel for指令。从上篇文章中我们也可以发现OpenMP并行执行的程序要全部结束后才能执行后面的非并行部分的代码。这就是标准的并行模式fork/join式并行模式,共享存储式并行程序就是使用for
2015-01-04 17:50:41 544
转载 测试用例设计方法
一、等价类划分 等价类划分主要适用于单个输入条件,输入为数值型的情况,如果输入规定了输入区间,可划分出一个有效等价类,两个无效等价类;如果输入只规定了输入范围,可划分出一个有效等价类,一个无效等价类。二、边界值 边界值方法也是适用于单个输入条件的情况,输入类型可以数值、字符等,要测试的边界包括上点、下点、离点。三、错误推测法 错误推测法主要是测试设计人员的测试
2015-01-03 19:20:48 508
转载 最好最坏和平均情况下的性能分析
最好最坏和平均情况下的性能分析现在有一个问题,对于所有的输入来说,前面得到的结果是否都成立呢?第二种排序法在少量字符串的时候性能也许是最好的。但是,输入数据有很多地方可能变化:输入数据可能有1 000 000个字符串。算法如何处理如此大规模的数据?输入数据可能会是部分有序状态,也就是说,几乎所有的元素所在的位置离最终位置并不是很远。输入数据可能包含重复的值。无论输入数据的规模n
2015-01-02 21:25:57 2679
原创 VC++ .NET 实例
#include "stdafx.h"#include#include #include using namespace std;using namespace System;using namespace System::IO; int main(array ^args){ cout<<"helloworld"; Console::WriteLine(L"Hel
2015-01-02 14:06:52 530
原创 捉虫记---查看变量,整数转浮点
/* * dot.cpp * * Created on: 2014年12月31日 * Author: judyge */#include#include#include#include#define random(x) (rand()%x)using namespace std;bool randbool(){ bool flag;
2015-01-01 00:28:13 586
原创 九度 题目1548:平面上的点
题目描述: 给定平面上的n个点,任意做一条直线,求至多能有几个点恰好落在直线上。输入: 包含多组测试数据,每组测试数据由一个整数n(0接下去n行每行给出一个点的坐标(x,y),x、y的绝对值均小于等于100。输出: 对于每组测试数据,输出一个整数,表示至多能有几个点恰好落在直线上。样例输入: 20 01 140 01 12 2 3 6
2015-01-01 00:06:11 812
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人