算法
leo_wc
多读书,读看报,少吃零食多睡觉
展开
-
游戏寻路之A*寻路
A*算法A*算法,A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快基础知识直接略过重温了下服务器的寻路算法,现存代码一共两种,一种是A*方格网格寻路(弃用,原因有遗留bug),另一种是三角形网格寻路(现用,听师傅这个效率较高,待会研究)。此文主要是A*寻路的实现。由于客户端有比较形象的表现方式原创 2017-05-25 19:01:59 · 924 阅读 · 0 评论 -
简单二叉树实现
二叉树是最简单的树结构,树结构为层次结构,与之对应的是线性结构,例如数组,链表等。经历过的游戏项目中线性表用得比较多,相比之下,树结构用的就比较少了,也许是笔者孤陋寡闻,单方面认为树适用于大数据量的存储,排序等操作,游戏服务器可承载数据量也挺大,但是处理能力和一些硬性要求(内存,硬盘)也有限,再锋利的刀刃用的时间长了也会钝,服务器卡顿会带来客户端非常操蛋的游戏体验,所以为了长久之计,不建议在游戏服上原创 2017-05-26 18:51:49 · 4114 阅读 · 0 评论 -
快速排序&归并排序
快速排序&归并排序快速排序和归并排序是非常常用的两种排序方式; 例如C# Array.Sort()就是快速排序的实现 java集合里Collections.sort()是归并排序及优化的归并排序(TimSort) 感兴趣的童鞋可以参考 C# Array.Sort 快速排序-源码分析 Collection.sort源码解析以下是这两种排序方式的简单实现(Unity里实现的):using Sy原创 2017-05-21 21:41:27 · 290 阅读 · 0 评论 -
数据结构之“堆”及推排序
概述堆是一种完全二叉树,高度为(高度为O(lgN))这种树结构的效率很高,多用于我们常说的堆排序以及优先队列,例如先入先出队列(FIFO)。堆排序的时间复杂度为O(NlgN)。ps: 完全二叉树的定义,若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,说白了,完全二叉树就是一棵数层数为h,则它的第1至h-1层没有空节点原创 2017-06-01 15:46:25 · 521 阅读 · 0 评论