
算法
文章平均质量分 86
yueguanghaidao
这个作者很懒,什么都没留下…
展开
-
堆的应用
一:堆排序算法#include #include using namespace std;#define LEFT(i) (2*(i)+1)#define RIGHT(i) (2*(i)+2)// 16(0)// / \ // 10(1) 8(2) // / \ //原创 2012-09-07 23:10:14 · 2276 阅读 · 0 评论 -
递归和分治
分治(divide and conquer)是基于多分枝递归的一种算法。简单的说就是把一个大问题分解为多个类型相同的子问题,最后把这些子问题的解合并起来就是问题的解。我们看一下典型的递归和分治算法。问题1: 插入排序的递归算法思路:1.首先找到突破点->> 如果共有n个数,如果前面n-1个都已排序,那么我只要把最后一个数插入到正确的位置即可。那如何让前n-1个都已排序呢,如原创 2012-08-29 00:34:57 · 7678 阅读 · 0 评论 -
哈希表
哈希表的有优点很多,最重要的就是速度快。然而再好的东西也是有缺点的,无疑哈希表是基于数组的,这就带来了扩展的问题。有两个解决办法1,保证你的数组够大,不会溢出 2,动态重新分配哈希表的构造方法有许多,如直接寻址法,除法散列法,乘法散列法。。。。解决冲突的方法有:开发地址法,再哈希法,链地址法,建立公共溢出区下面提供一个除法散列法和链地址法结合的哈希实现。#include原创 2012-09-09 23:40:15 · 1751 阅读 · 0 评论 -
golang 高效低精度定时器实现
golang默认定时器是通过time模块实现的,不管是golang,libev,libevent的定时器都是通过最小堆实现的,通过最小堆实现的定时器加入定时器时间复杂度为O(lgn),在需要大量定时器时效率较低,所以Linux提供了基于时间轮的实现,我们本次提供的定时器实现就是标准的Linux时间轮实现方式。当然,我是把Skynet(https://github.com/cloudwu/skyne原创 2015-05-31 18:56:57 · 13911 阅读 · 6 评论 -
给golang增加websocket模块
最近打算做一款类似腾讯>的h5游戏,之前打算用skynet来做,所以给skynet增加了websocket模块,https://github.com/Skycrab/skynet_websocket。刚好最近在学习golang,考虑之下打算用golang来实现,说不定过段时间还能整个golang游戏服务器。之前我一直认为Python是我的真爱,但现在真心喜欢golang,也许这也是弥补我静态语言的原创 2015-06-02 21:04:23 · 11896 阅读 · 1 评论 -
golang sortedset 实现(基于redis skiplist)
在游戏中排行榜是很常见的需求,之前一直使用的是redis的sortedset,所以就把原创 2015-06-25 20:22:25 · 5582 阅读 · 0 评论