自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (2)
  • 收藏
  • 关注

原创 不使用随机数的洗牌算法实现(C++实现)

偶然看到有人讨论不使用随机数怎么洗牌,感觉挺有意思的。其实本质就是要达到随机的效果,这个是开放性的问题,其实思路是很多的,主要看实现的难度或者是否可以实现随机洗牌。 我的思路有如下: (1)最简单而且直接的方法:使用时间戳,由于洗牌算法就是随机交换数组里面的值。运行过程是很快的,因此,必须要使用微秒级别以上的时间精度才行。使用毫秒级别的都不大可行。 (2)麻烦的方法:通过hook,随便获取一串网络通讯数据,然后用里面的数值当前索引。由于每次洗牌都要去获取一串数据,因此也是随机效

2017-10-27 14:26:08 1223

原创 邻接表实现--图的拓扑排序

有向图的拓扑排序是基础算法,也是很重要的一个算法。 它的思路如下: (1)统计所有顶点的入度,接着把入度为0的全部入栈或者入队列。 (2)取出栈顶元素,或者队列的首个元素,标记该顶点为"已访问"状态。 接着删除该顶点与其它顶点的联系,即把其它相邻顶点的入度减少1。相邻顶点中,入度减少1之后,如果存在入度为0的新顶点,把新顶点入栈或者入队列。 (3)第二步一直循环处理,知道栈为空或者队列为空。 (4)判断是否所有的顶点都访

2017-10-25 18:39:01 4151

原创 邻接表实现--图的深度优先遍历DFS和广度优先遍历BFS

邻接表实现--图的深度优先遍历DFS和广度优先遍历BFS。

2017-10-25 09:38:29 2279

原创 通过例子学设计模式之--桥接模式以及使用场景说明(C++实现)

桥是一种结构。桥接模式的类图和桥很像,是一种结构型的设计模式。 通常情况下,桥两边各有一个桥墩,每个桥墩我们可以理解为一个抽象类,或者是一个变化。中间的桥梁我们可以理解为类的“关联”,这个关联就是聚合。这样就组成了桥接模式。它可以处理2个维度同时变化的情况。其实也可以处理多个维度的变化情况,理解上可以想成桥墩有多个,而不仅仅是2个。那么桥梁也不止1个,而是多个。 比如一个对象,如果A维度有3种变化,B维度有4种变化,C维度有2中变化。直接使用继承的方式,会有3

2017-10-23 18:29:21 1210 2

原创 通过例子学设计模式之--建造者模式以及使用场景说明(C++实现)

相信我们基本都买过台式电脑吧。我们应该不会去买主板,CPU,内存等等子部件回家,然后自己组装成台式机。当然,也不排除某些发烧友这样做。但是对于多数人来说,我们只需要对老板说,我需要一台联想的或者惠普的电脑,老板组装好给我们就OK了。我们买车也是这样的,只是买一台车回家,而不是买回一堆的发动机等等零件。 上面的例子,抽象一下,就是建造者模式。 建造者模式是创建模式中最复杂的,这个复杂指的是类的结构和实现会复杂一些。它的使用场景不复杂,很好理解。就是创建复杂对象。什么

2017-10-23 18:22:24 2098

原创 通过例子学设计模式之--单例模式以及多线程下说明(C++实现)

通过例子学设计模式之--单例模式以及多线程下说明(C++实现)。

2017-10-18 14:33:09 298

原创 通过例子学设计模式之--抽象工厂模式以及使用场景说明(C++实现)

考虑这样一个场景,PC机有IBM和Lenvo2个品牌。两者都有各自的CPU,内存RAM,硬盘Disk,网卡NetCard等等十几个组件。如何创建这些产品对象呢? (1)如果用简单工厂,比如使用一个工厂(PC工厂),或者2个工厂(IBM工厂,Lenvo工厂),switch--case的分支至少都要10个以上,功能太不单一。除非你刚学习编程,否则就不可能也不应该这样做。 (2)如果用工厂方法模式,那么一个工厂对应一个产品,每个PC都有十几个组件,那么2个PC品牌就会有20几个工厂。假如后续再

2017-10-16 17:29:11 731

原创 通过例子学设计模式之--工厂方法模式以及使用场景说明(C++实现)

简单工厂模式有如下问题: (1)工厂类职责不单一。比如设备类工厂,工厂一并生产USB,并口,串口,等等之类的设备,职责不单一,而且switch--case分支有可能比较多。 (2)违背开闭原则。比如设备类工厂,增加一个WIFI设备,则需要修改到工厂类的创建接口,可能会影响原有代码。 解决这2个问题,我们需要对工厂类进行抽象,抽象出创建的接口,通过多态的方法把创建延迟到子类实现,也就是工厂方法模式。

2017-10-16 16:07:01 544

原创 通过例子学设计模式之--简单工厂模式以及使用场景说明(C++实现)

这个模式应该说是非常简单的。作用也很明显,就是面向对象中,可能会创建大量的不同类别的对象,不可避免就会出现大量的new操作。为了统一管理对象的创建和销毁,我们可以添加一个类,这个类提供创建和销毁的接口。 实际的项目过程中,我们可能会根据不同的类别创建不同的简单工厂类,比如设备工厂类,图形工厂类,水果工厂类等等。

2017-10-13 11:05:58 976

lex和yacc原理

介绍lex和yacc的一些原理,以及其在词法分析和语法分析的作用。

2013-11-30

音频视频压缩理论知识,有点用。

[多媒体技术及其应用.].钟玉琢.沈红.吕小星.扫描版.pdf

2011-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除