上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 44 下一页
摘要: 平衡二叉树的常用算法有红黑树、AVL、Treap、伸展树平衡二叉树(Balanced Binary Tree)又被称为AVL树(区别于AVL算法,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、Treap、伸展树等。红黑树 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedge 阅读全文
posted @ 2013-01-07 15:46 zaleilynn 阅读(464) 评论(1) 推荐(0) 编辑
摘要: 转载自:http://dongxicheng.org/structure/red-black-tree/1. 简介红黑树是一种自平衡二叉查找树。它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除等操作。本文介绍了红黑树的基本性质和基本操作。2. 红黑 阅读全文
posted @ 2013-01-07 15:35 zaleilynn 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/xiao-cheng/archive/2011/10/04/2198972.html定义:一棵空二叉树是AVL树,如果T是非空二叉树,TL和TR分别是其左子树和右子树,则当且仅当TL和TR都为AVL树且|HL-HR|<=1时,T是AVL树。由定义知道一个AVL树的任何节点的左右子树的高度之差不超过1,这是AVL树最基本的特征。AVL树的高度:(固定节点数计算最大高度)记N_h为一棵高度为h的AVL树具有的最小节点数,则最坏情况是它的左右子树的高度不等,一个是N_(h-1)和N_(h-2),从而得到N_h=N_(h-1)+N_(h-2) 阅读全文
posted @ 2013-01-07 15:33 zaleilynn 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://hi.baidu.com/tianhua_sun/item/401166c90f874a03ad092f011. struct epoll_event 结构体epoll_event 被用于注册所感兴趣的事件和回传所发生待处理的事件,定义如下: typedef union epoll_data { void *ptr; int fd; __uint32_t u32; __uint64_t u64; } epoll_data_t;//保存触发事件的某个文件描述符相关的数据 struct epoll_event { __uint32_t events; /* epoll eve 阅读全文
posted @ 2013-01-07 15:13 zaleilynn 阅读(1004) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.htmlLevelDb日知录之一:LevelDb 101 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二。 Jeff Dean其人:http://research.google.com/people/jeff/index.html,Google大规模分布式平台Bigta.. 阅读全文
posted @ 2013-01-07 11:36 zaleilynn 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1libevlibev所实现的功能就是一个强大的reactor,可能notify事件主要包括下面这些:ev_io // IO可读可写ev_stat // 文件属性变化ev_async // 激活线程ev_signal // 信号处理ev_timer // 定时器ev_periodic // 周期任务ev_child // 子进程状态变化ev_fork // 开辟进程ev_cleanup // event loop退出触发事件ev_idle // 每次event loop空闲触发事件ev_embed // TODO(zhangyan04):I have no idea.ev_prepare // 阅读全文
posted @ 2013-01-07 11:28 zaleilynn 阅读(388) 评论(0) 推荐(0) 编辑
摘要: ubuntu下安装libev开发包:$ sudo apt-get install libev-dev下面是libev的man page自带的libev用法示例,保存到testlibev.c 1 // a single header file is required 2 #include <ev.h> 3 4 #include <stdio.h> // for puts 5 6 // every watcher type has its own typedef’d struct 7 // with the name ev_TYPE 8 ev_io stdin_watche 阅读全文
posted @ 2013-01-07 11:05 zaleilynn 阅读(1661) 评论(0) 推荐(0) 编辑
摘要: libevent是一个异步事件处理软件函式库,以BSD许可证发布。libevent提供了一组应用程序编程接口(API),让程式设计师可以设定某些事件发生时所执行的函式,也就是说,libevent可以用来取代网络服务器所使用的事件循环检查框架。由于可以省去对网络的处理,且拥有不错的效能,有些软件使用libevent作为网络底层的函式库,如:memcached、Tor。目前libevent支持以下的方式判断IO事件:poll(2)select(2)几乎所有的Unix平台都有提供的函式。/dev/pool以Solaris平台为主。kqueue(2)以BSD平台为主。epoll(2)以Linux平台为 阅读全文
posted @ 2013-01-07 10:41 zaleilynn 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 原文作者Alucard,来源于白云黄鹤BBS,白云黄鹤BBS->校园公益->Job_Discuss版->《2012武汉IT求职指南》最后一个忠告很给力,放到前面供大家参考一个优秀的程序员,一定要去做产品的公司,不要去做项目的公司。前者能够让你充分的展现才华,公司希望你能设计出更好的软件,这样一个软件能卖得更多;后者会压抑和劳累,公司规定你必须按照客户的要求去做,因为一个软件只在一处使用。本人计算机小硕,2011年华科计算机毕业,通过各种实习校招关系等等,拿了很多offer,了解到了武汉大部分比较好的IT公司信息,在这里给大家分享下。以下待遇都是说的“软件研发”岗位,因为我主要 阅读全文
posted @ 2013-01-06 19:34 zaleilynn 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.cnblogs.com/flying_bat/archive/2008/01/18/1044693.html在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先 阅读全文
posted @ 2013-01-06 14:08 zaleilynn 阅读(200) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 44 下一页