二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
由于数据量的增加和业务的需求,公司从14年年初,开始调研和使用Hadoop生态圈的相关技术,在这期间,我们逐渐上了Hadoop、Hive、Flume等服务,并完成了对老统计业务的迁移。
Hadoop从2.x实现了用来管理集群资源的YARN框架,可以面向任何需要使用基于HDFS存储来计算的需要,MapReduce作为外围的插件式的计算框架,你可以根据需要开发或者选择合适的计算框架。
最近在看数组排序算法时,涉及到位运算,发现以前学的基础知识都忘了,于是简单温故知新了一下。
在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。
废话不说,直接上代码。
开发一套博客系统的话,主要分两部分。一部分是内容发布,另一部是内容展示。
内容发布需要一个编辑方便,所见即所得的编辑器,并能将编辑内容转成html后保存起来。由于我想采用Markdown编辑,且不想实现Markdown内容转html的开发(使用过Python-markdown2,感觉并不是很理想),所以,我这里采用MarkdownPad2进行编辑,然后生成Html保存起来,由Python程序按照设计的规则解析成Html,并存入数据库。(当然,我们也可以采用其它Markdown编辑器实现类似功能)。