树的解释
树是ADT里面很经典的数据结构了,应用太多了,相对于链表的线性访问时间,O(n)。树的大部分操作的平均运行时间都是为O(logN)。
- 树的概念
树有几种方式定义,一种是递归,若树不为空,则一棵树是由根(root)的节点r和0个或者多个非空树组成。N个节点的树,有N-1个边。没有儿子的节点称为叶子(leaf). 对于任意节点N(i),它的深度为从根节点到N(i)的唯一路径长度。如...
分类:
其他好文 时间:
2014-07-30 01:08:02
阅读次数:
253
1、在Windows
XP中:单击“开始→运行”,输入“cmd”后回车,打开命令提示符窗口。输入“systeminfo”并回车,稍等一会儿就会看到有关自己操作系统的一
个摘要,其中有一行为“系统启动时间”,后面的时间单位也精确到秒,如图所示。怎么样,很神奇吧?需要注意的是,这里的“..
二叉查找树(Binary Search Tree)在很多情况下可以良好的工作,但它的限制是最坏情况下的渐进运行时间为 O(n)。平衡查找树(Balanced Search Tree)的设计则是保证其高度在最坏的情况下为 O(log n),其插入、删除和查找可以实现渐进运行时间 O(log n)。本文...
分类:
其他好文 时间:
2014-07-24 14:44:35
阅读次数:
282
本文介绍从无序数组中选择最大值和最小值的最优算法。进而介绍采用快速排序思想的 RANDOMIZED-SELECT 选择算法来查找给定位置 i 的值,或获取中位数(median)。快速排序会递归地处理划分的两边,而 RANDOMIZED-SELECT 则只处理一边。所以快速排序的期望运行时间是 Θ(n...
分类:
其他好文 时间:
2014-07-24 04:58:28
阅读次数:
355
Dijkstra算法:解决的问题: 带权重的有向图上单源最短路径问题。且权重都为非负值。如果采用的实现方法合适,Dijkstra运行时间要低于Bellman-Ford算法。思路: 如果存在一条从i到j的最短路径(Vi.....Vk,Vj),Vk是Vj前面的一顶点。那么(Vi...Vk)也必定是从.....
分类:
其他好文 时间:
2014-07-23 22:11:57
阅读次数:
290
面试题目题目如下:
现有1个点和10000个位置半径各不同的圆,为了判断改点被包含在哪些圆内,需要一个函数判断点(px,py)是否于圆心(x,y)半径r的圆内,请尽快优化运行速度。
我们加上本专题的第一篇博客测试程序运行时间。经过本人测试发现10000个圆圈根本就测试不出时间,所以我们在项目中改成了1000,000个圆圈。...
分类:
系统相关 时间:
2014-07-23 17:00:41
阅读次数:
457
题目链接一道很有技巧的贪心题目。题意:有n个机器,m个任务。每个机器至多能完成一个任务。对于每个机器,有一个最大运行时间xi和等级yi,对于每个任务,也有一个运行时间xj和等级yj。只有当xi>=xj且yi>=yj的时候,机器i才能完成任务j,并获得500*xj+2*yj金钱。问最多能完成几个任务,...
分类:
其他好文 时间:
2014-07-23 12:37:26
阅读次数:
210
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
clock_t start,finish;
//先行后列
start=clock();
//执行内容
????//.......
finish=clock();
//tot...
分类:
编程语言 时间:
2014-07-21 10:18:31
阅读次数:
209
1.不相交集是解决等价关系的一种数据结构,执行合并和查找的速度都非常快,M次运行合并和查找的运行时间为(M*logN)。
在一个集合中,对于每一对元素(a,b),a,b∈S,对于关系R如果满足下面三个条件,则成关系R为等价关系:
(1)自反性 对于所有a∈S,aRa
(2)对称性 aRb当且仅当bRa
(3)传递性 若aRb且bRc,则aRc
有关不相交集的介绍...
分类:
编程语言 时间:
2014-07-20 10:14:09
阅读次数:
321