您现在的位置:首页
--> 算法
• 算法收集
热度: 插入排序 思想:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止.算法的复杂度也是简单的,排序第一个需要1的复杂度,排序第二个需要2的复杂度,因此整个的复杂度就是....
什么样代码是简洁易懂, 这很难有个统一的标准, 因为它很大程度上决定于所在团队的编写风格(往往偏向于核心程序员). 正因如此, 本文仅仅呈现一下DSL的编码风格, 若你喜欢, 不妨在自己的实践中也试试; 不欣赏者, 只当浮云飘过吧。
python,c#,java里面都有类似于foreach的结构,stl里面虽然有for_each这个函数,但是感觉使用还是太繁琐了一些,所以就自己实现了一个。 先来看看stl里面的for_each函数,官方文档上的原型如下: 1 Fun...
当然,一般split我们还是使用字符分割比较多。
另外也说一个问题,stl里面string的find和rfind方法是可以查找字符串的,但是find_last_of和find_first_of只能查找字符,即使传入的参数是字符串,查找的也是字符。
今天在写code时,要调用thrift的TDeserializer.deserialize()方法,发现其提供的接口很不好用。会导致应用代码的多一次copy。 thrift源码如下: public void deserialize(TBase base, byte[] bytes) throws TException { base.read( protocolFactory_.getProtocol( new TIOStreamTransport( new ByteArrayInputStream(bytes)))); } 可以看出,这里只可以传如byte[]. 在应用程序中, 如果采用buffer复用,就会要导致buffer的不定...
在分布式的程序中,cache的合理使用可以带来性能上的极大提升,尤其是在资源创建需要昂贵的开销时。cache的设计最重要的是要保证线程安全和高效性。下面以代码为例,介绍了三种cache的写法。 1. 粗放的加锁 public class Cache1 { private HashMap route2SG = null; public Cache1() { route2SG = new HashMap(); } public synchronized ServerGroup get(String routeK...
大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。 下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。
这是之前朋友出的一道题目,感觉不错,就拿来分享一下。 问题如下: 一个单向链表,怎么判断他是否存在环? 图示: 对于最简单的做法就是: 用一个指针走一圈,如果重复遇到其他任何一...
大家觉得在接手遗留代码时,见到什么东东是最让人感到不耐烦的?复杂无比的 UML ?我觉得不是。我的答案是,超过两个 else 的 if ,或者是超过两个 case 的 switch 。可是在代码中大量使用 if else 和 switch case 是很正常的事情吧?错!绝大多数分支超过两个的 if else 和 switch case 都不应该以硬编码( hard-coded )的形式出现。复杂分支从何而来首先我...
这篇文章主要讲解G++编译器中虚继承的对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。
python以其优美的语法和方便的内置数据结构,赢得了不少程序员的亲睐。 其中有个很有用的数据结构,就是字典(dict),使用非常简单。说到遍历一个dict结构,我想大多数人都会想到 for key in dictobj 的方法,确实这个方法在大多数情况下都是适用的。但是并不是完全安全....
IMDB网站是目前互联网上最为权威、系统、全面的电影资料网站,里面包括了几乎所有的电影,以及1982 年以后的电视剧集。IMDB的资料中包括了影片的众多信息,演员,片长,内容介绍,分级 ,评论等,就个人买碟而言,很大程度上也是参考IMDB的得分。 它所特有的电影评分系统深受影迷的欢迎,注册的用户可以给任何一部影片打分并加以评述,而网站又会根据影片所得平均分、选票的数目等计算得出影片的加权平均分并以此进行TOP250(最佳2...
在SNS网站中,“好友的相册”、“好友的日志”、“好友常去的小组”,这样的功能到处都是,如果处理不当,对整个系统的压力都会非同小可。 这里介绍一种利用sphinx的搜索天性,倒排索引群中的人,然后把好友的XX功能化解为或关系的搜索,下面是是一些记录。
最近在修改一个代理机server,增加url rewrite的功能,由于其单机的访问量很高,20000/s左右,对性能要求很高,所以在做url映射的时候,纠结在用map还是hashmap存储映射的问题上。于是做了一个...
去年介绍过我在项目中实现的一个动态数组模块的接口。实际上,我为它提供的接口要更多一些,比如删除一个元素。 void array_erase(struct array *, seqi iter);原来的语义就是删除 iter 引用的元素。但这里引出一个问题:删除后,iter 是否应该保持有效?从语义上说,iter 应该在调用完毕后变成一个无效引用。但实际应用中,往往需要在迭代 array 的过程中,删除符合条件的元素。让迭代器失效的做法,用起来很不方便。
这篇文章基于 fastbit 软件包,加以实际的用例对常用的 bitmap 索引算法进行了一个较为系统的介绍。不过生成 bitmap 索引仅仅是第一步,bitmap 索引在存储时会有很大的开销,在不损害(较少损害)查询效率的情况下,对 bitmap 索引进行有效的压缩是一个非常有挑战性的课题。除了 bitmap 索引的生成和存储之外,在不同类型的 bitmap 索引上实现高效的各种类型的查询,也是一个值得进一步探讨的问题。我们很高兴地看到 fastbit 软件包实现了很多这些相关领域的算法,为我们提供了非常宝贵的资料。
PHP中文分词类,主要作用是分析语料库,找出核心主题词,是网页相似度引擎的子模块相比成熟的分词类库,如Lucene,中科院之流 没有任何优势,本类库是实验性项目,效率及算法[trie]并无特殊 ...
学习:一个并发的Cache
常用 sscanf 解析字符串,处理错误也很简单:sscanf 会返回实际解析并赋值了的域的个数,判断一下是否和期望的一致即可。今天却遭遇一个解析地址的 bug,是由于地址本应该是“127.0.0.1:30000”被写成 “127.0.0.1:30000:127.0.0.1:30000”,原来用 sscanf 解析,判断结果等于5就认为正确,却没有判断额外的字符。
SSH提供了很多种不同的身份验证,其中最常用的两种便是密码验证和基于公钥/私钥的身份验证。基于公钥/私钥的身份验证有非常多的优点。首先,公钥/私钥可以从根本上挫败监听来截取验证信息的企图。公钥/私钥验证本质上是一种 零知识证明。即,在身份验证的过程中,服务器并不需要知道用户的私钥是什么。【注:公钥/私钥验证并不是零知识证明,感谢 snnn 指正。】公钥/私钥验证在身份验证的过程中,服务器只需要知道用户的公钥,而用...
近3天十大热文
- [56] Oracle MTS模式下 进程地址与会话信
- [56] IOS安全–浅谈关于IOS加固的几种方法
- [55] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [53] Go Reflect 性能
- [53] android 开发入门
- [50] 【社会化设计】自我(self)部分――欢迎区
- [50] 读书笔记-壹百度:百度十年千倍的29条法则
- [39] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑
赞助商广告