
数据结构与算法
经典算法与数据结构
码工许师傅
软件工程师,开源爱好者;
擅长物联网、嵌入式、人工智能相关技术;
曾获荣誉/称号:
华为开发者专家(HDE);
51CTO最有价值专家(MVP);
电子发烧友最有价值专家(MVP);
OpenHarmony第20位开发者;
OpenHarmony“开发者贡献奖”(2020年)。
展开
-
使用C++TR1实现物流配送问题的简单模拟
物流配送问题是典型的NP完全问题,寻找求解该问题的高效准确的算法一直以来都是研究热点。我在这里不是讨论解决该问题的具体算法,而是简单介绍一下C++98的一个功能强大扩展--TR1。 TR1是Technical Report 1的简称,它原本是标准委员会内部的一个名称。它是在1998年标准委员会提出C++ Standard(就是我们说的"标准C++")之后 委员会拟定的下一个版本的C++ St原创 2012-12-06 13:18:53 · 2817 阅读 · 0 评论 -
STL 应用2 POJ 1007 DNA Sorting 题解 (STL完美解答)
DNA SortingTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 63845 Accepted: 25209DescriptionOne measure of ``unsortedness'' in a sequence is the number of原创 2012-05-01 02:06:29 · 862 阅读 · 0 评论 -
STL的应用 POJ 1840 Eqs 题解
题目:DescriptionConsider equations having the following form:a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0The coefficients are given integers from the interval [-50,50]. It is consider a solution a syst原创 2012-04-15 15:20:27 · 1165 阅读 · 0 评论 -
[代码分享]静态链表,接口仿照STL设计,操作未做封装
很久没有来优快云,也很久没有写东西了。去年12月在OSCHINA注册了号,发了两段code。这次转过来,以便日后查阅。连接:http://www.oschina.net/code/snippet_737017_16964这是一段静态链表的实现,其间用到了一种简单的内存管理策略——空闲链表。这段代码里的“静态”是一个预先分配好的 node array,实际情况下可能会是一个一次性申请的原创 2013-04-22 23:13:02 · 1069 阅读 · 0 评论 -
类球多面体生成——经纬划分法
规则多面体生成算法,算法本身并不复杂。开始想百度一份的,结果没百度到。贴出来,希望以后有用得到的同学可在直接拿去用。算法过程根据经纬线数目求出多面体表面所有点的坐标;连接南北极附近的三角形面;连接中间的四边形(或两个三角形);算法实现下面是该算法的C++实现.Convex* SphereGenerator::generate(int longitudes, int l原创 2014-06-14 18:10:01 · 2657 阅读 · 0 评论 -
【经典面试题】实现平方根函数sqrt
本文描述了二分法、牛顿法、割线法的算法步骤,并实现了基于这几种方法的SQRT;同时,从理论角度解释了这些算法背后数学原理,并将这些方法推广到了求一般方程近似解的问题上。最后,对几种方法实现的sqrt的收敛速度进行了理论分析和实验对比。实验结果表明,牛顿法的收敛速度快于割线法,割线法快于二分法;与理论分析结果一致。原创 2014-08-30 17:53:19 · 24199 阅读 · 7 评论 -
Java的Object.hashCode()的返回值到底是不是对象内存地址?
java的Object.hashCode()返回的到底是不是对象的内存地址?相信大家都曾对此问题有所怀疑,本文通过实验探究 和 ART(Android Runtime)、OpenJDK的源码分析为大家(和我自己)回答了这个问题。对Java、算法感兴趣或对此问题也有疑问的同学可以一看。原创 2015-05-03 13:25:40 · 23007 阅读 · 12 评论 -
bullet HashMap 内存紧密的哈希表
bullet 作为开源实时物理引擎,在速度和性能上有着优秀的表现。本文首先分析了bullet的内存对齐、动态数组,然后分析了std::ordered_map的内存布局,最后分析了btHashMap内存布局的独特之处,并解释了为什么这种设计有着优秀的性能表现。PS:对算法、数据结构、内存管理、高性能感兴趣的同学,此文绝对值得一看。原创 2014-11-09 14:07:20 · 2682 阅读 · 0 评论 -
btHashMap vs std::unodered_map ——两种hashmap的性能对比测试
本文用实验对比了btHashMap和std::unordered_map在几种不同场景下的性能表现,证实了前文对于二者性能差异上的断言,并从rehash成本的角度解释了当size达到一定数量时std::unordered_map性能表现下降的原因。原创 2015-07-25 11:41:33 · 3818 阅读 · 0 评论