![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法实践
文章平均质量分 85
Siliphen
这个作者很懒,什么都没留下…
展开
-
哈夫曼树与哈夫曼编码
最近写了一个哈夫曼编码小程序。对于数据结构书上介绍的算法硬是没看懂,而只是看懂了图示,所以就用了自己的方式来做。 程序运行如下图: 写了一个哈夫曼树类。可以对任何数据进行编码。测试的话,只需要输入要进行编码的字符串就行了,会输出编码方案(就是编码后对应的01序列),对应的哈夫曼树形态,和编码结果。 我的哈夫曼树类,在内部维护了一个链式二叉树。当输入一原创 2011-11-06 15:28:21 · 2251 阅读 · 1 评论 -
碰撞检测:判断2个多边形相交
演示demo:需要判断2个条件边相交。2个多边形的边是否相交。点在内部。2个多边形的顶点是否在另一个多边形的内部。关于这2个条件的判断:《碰撞检测:判断点是否在多边形内部》https://blog.csdn.net/StevenKyleLee/article/details/88044589《碰撞检测:判断线段相交》https://blog.csdn.net/StevenKy...原创 2019-03-02 14:41:09 · 13456 阅读 · 6 评论 -
碰撞检测:判断点是否在多边形内部
本文demo演示:基本判断原理:判断一个点是否在一个多边形中,有一个简单的做法:从这个点发射一条射线,统计射线与多边形有多少条边相交,奇数表示点在多边形内,偶数表示点不在多边形内。为了简化计算,射线是水平的。如下图所示:点 A 水平向右的射线有 5 个交点,奇数,A在多边形内。点 B 水平向右的射线有 2 个交点,偶数,B 在多边形外部。如果一个点在多边形内,穿过这个点的水...原创 2019-02-28 20:47:54 · 6861 阅读 · 0 评论 -
整数分解为指定元素的加法表示:找零钱
在实际项目中遇到一个问题。有一个总数N,和一个元素集合{ e1,e2 ...},求N可以是由元素集合中的什么元素相加组成。例如:总数49,元素集合{3,7,11},有如下解:49 = 3 + 3 + 3 + 7 + 11 + 11 + 1149 = 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 11 + 11... 这个问题类似于现实生活中的找零钱,在原创 2017-06-23 02:16:01 · 1061 阅读 · 0 评论 -
CSV文件格式解析器的实现:从字符串Split到FSM
本文乃Siliphen原创,转载请注明出处: 本文分为5小节,基本上就是我刚接触CSV文件到思考、实践做一个CSV解析器的过程的还原。希望我的思路也能带领你一步步从浅到深认识CSV文件格式。 1.简单的CSV解析器实现。2.简单实现的CSV解析器的问题3. CSV格式的定义4.用FSM(有限状态机)来做CSV格式解析。5.为什么使用CSV格式 1.简单的CS原创 2014-07-31 00:37:56 · 17348 阅读 · 11 评论 -
Cocos2d-x 地图行走的实现3:A*算法
上一节《Cocos2d-x 地图行走的实现2:SPFA算法》:http://blog.csdn.net/stevenkylelee/article/details/384406631.修改一下Dijkstra的实现 回顾一下之前Dijkstra的实现。Dijkstra需要从一个表Q中选出一个路径代价最小的顶点。之前我们的实现是,一开始就把所有的顶点都放入这个表Q中。仔原创 2014-08-09 21:14:26 · 10854 阅读 · 8 评论 -
Cocos2d-x 地图行走的实现2:SPFA算法
上一节《Cocos2d-x 地图行走的实现1:图论与Dijkstra算法》:http://blog.csdn.net/stevenkylelee/article/details/38408253本节实践另一种求最短路径算法:SPFA1.寻路算法实现上的优化上一节我们实现的Dijkstra用了一个哈希表来保存搜索到的路径树。如果能用直接的访问的方式,就不要用哈希表原创 2014-08-08 19:03:19 · 5601 阅读 · 6 评论 -
表达式求值:从“加减”到“带括号的加减乘除”的实践过程
本文乃Siliphen原创,转载请注明出处:http://blog.csdn.net/stevenkylelee ● 为什么想做一个表达式求值的程序 最近有一个需求,策划想设置游戏关卡的某些数值,这个数值不是一个常量,而是根据关卡的某些环境数据套上一个计算表达式算出来的。这个需求无法用excel拖表预计算出,因为关卡的环境数据只有在游戏中才能产生,在excel制表时,这些都原创 2015-02-01 18:37:27 · 12583 阅读 · 2 评论 -
Cocos2d-x 地图行走的实现1:图论与Dijkstra算法
本文乃Siliphen原创,转载请注明出处:http://blog.csdn.net/stevenkylelee本文的实现基于Cocos2d-x 3.2 目录:1.什么是地图行走2.图论简介3.图论的数据结构4.图编辑的实现思路5.图论结构数据的保存和载入6.经典的最短路径算法Dijkstra1.什么是地图行走 很多游戏会有一原创 2014-08-07 00:23:53 · 10907 阅读 · 24 评论 -
Trie实践:一种比哈希表更快的数据结构
本文乃Siliphen原创。转载请注明出处:http://blog.csdn.net/stevenkylelee先考虑一下这个问题:如何统计5万个0-99范围的数字出现的次数?可以用哈希表来进行统计。如下: // 生成5万个0-100范围的随机数 int * pNumbers = new int[ 50000 ] ; for ( int i = 0 ; i < 5000原创 2014-08-02 06:19:21 · 14326 阅读 · 11 评论 -
寻路算法实践2
这篇是上一篇《寻路测试》的“续集”,上一篇的地址:http://blog.csdn.net/stevenkylelee/article/details/7246138 程序其实写完好久了。只是一直没上传上来。本次代码工程的IDE改成了VS2008。Qt Creator还是用得不爽。IDE还是微软的VS强大。。。总共实现的算法有:DFS,BFS,双向BFS,一个自己的启发式,Be原创 2012-06-12 15:56:31 · 6637 阅读 · 1 评论 -
寻路算法实践1
最近一段时间学了 Qt , Boost , 图论基础算法 后,就做了这个练习作品。本程序是为了测试,从点S到点D是否有通路。如果有通路,那么路径都是什么最短的路径又是什么。 先上运行时的效果图吧。(可执行程序和源代码下载在本帖末尾) 点击左下角的“开始搜索”按键后,就会按照按钮右边的组合框中选择的算法来搜索从S到D的路径。目前实现的算法有:DF原创 2012-02-09 20:05:04 · 6276 阅读 · 11 评论 -
简单的图像去噪的实现
StevenKyleLee原创:http://blog.csdn.net/stevenkylelee/article/details/6973471转载请注明最近接到一个任务:去除图像中的噪点。图片是从扫描仪扫描进来的,色彩只有黑白二值。因为是从书本上扫描,而书本上的纸张有背景色,所以导致扫描的图片会出现一大片离散的噪点。为什么要去除噪点呢?因为噪点会干扰OCR程序对文字图片的原创 2011-11-15 17:31:18 · 15080 阅读 · 5 评论 -
各常见排序算法实践
如题。实践了下几种比较常见的内排算法。并对各种排序算法的执行效率也排了个序。数据量不大的情况下,一般是堆排比较快。数据量很大时,快排才会有优势。 截图如下:为了更清楚看到结果,运行的是debug版。 源代码下载(语言:C++):http://download.csdn.net/detail/stevenkylelee/4095219 呵呵。下面原创 2012-02-27 23:48:38 · 1898 阅读 · 0 评论 -
碰撞检测:判断线段相交
本文乃Siliphen原创,转载请注明出处:http://blog.csdn.net/stevenkylelee2D叉乘3D 叉乘:3D 叉乘的结果是一个 3D 向量,这个向量垂直于参与运算的2个向量的法向量。3D 叉乘计算公式:( a.y * b.z - b.y * a.z , a.z * b.x - b.z * a.x , a.x * b.y - b.x * a.y )2D叉乘:2...原创 2019-02-26 19:02:42 · 7061 阅读 · 3 评论