eaglet

本博专注于基于微软技术的搜索相关技术
随笔 - 189, 文章 - 0, 评论 - 3725, 阅读 - 147万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  算法

算法
摘要:全文索引的分布式检索粗想想似乎很简单,感觉就是把多个接入点搜索出来的数据做个合并排序就可以,但如果想要做好,满足商业应用要求,这里面涉及到很多算法优化的问题,比如多路排序的优化,动态路由,翻页的优化,通讯的优化,分发复制,冗余和故障转移等等。从今天开始,我将逐步讲解HubbleDotNet 在分布式检索方面的众多算法考虑。由于涉及的算法很多,无法在一篇全部阐述,我打算采用由浅入深的思路,先从比较简单的算法开始。本文将介绍翻页的优化技术。 阅读全文

posted @ 2011-05-18 08:48 eaglet 阅读(5299) 评论(14) 推荐(9) 编辑

摘要:例如 sn = 100 时,总和为100 的连续正整数数列有(100) (18 19 20 21 22) (9 10 11 12 13 14 15 16),本文将讲述如何通过数学的方法来设计一个高效的算法。 阅读全文

posted @ 2011-03-05 08:27 eaglet 阅读(3202) 评论(31) 推荐(5) 编辑

摘要:本文将讲述一个高效的不重复随机数列的生成算法,其效率比通常用hashtable 消重的方法要快很多。 阅读全文

posted @ 2011-01-17 09:30 eaglet 阅读(84962) 评论(93) 推荐(41) 编辑

摘要:这个算法主要用于需要针对坐标的高速插入移动和查询。比如游戏的坐标定位,查找。 阅读全文

posted @ 2011-01-04 09:45 eaglet 阅读(3051) 评论(10) 推荐(6) 编辑

摘要:如果你要去一些大公司面试,事先做做这些公司的面试题很有必要,比如 google 或者微软的面试题。我给出一些网站资源供大家参考,也请大家补充。 阅读全文

posted @ 2010-09-22 14:44 eaglet 阅读(1426) 评论(0) 推荐(1) 编辑

摘要:计数排序是一种算法复杂度 O(n) 的排序方法,适合于小范围集合的排序。比如100万学生参加高考,我们想对这100万学生的数学成绩(假设分数为0到100)做个排序。我们如何设计一个最高效的排序算法。本文不光给出计数排序算法的传统写法,还将一步步深入讨论算法的优化,直到时间复杂度和空间复杂度最优。 阅读全文

posted @ 2010-09-16 13:18 eaglet 阅读(17244) 评论(15) 推荐(5) 编辑

摘要:上周我写了一篇算法求解的文章,文章的最后我说我这个算法的效率其实还可以提高一倍,好几天过去了,没有人发现这其中的奥秘,我今天把答案公布一下吧,说出来大家会觉得很简单,其实写算法也好,搞开发也好,技术这种东西无非就是一层窗户纸,说出来就没那么神秘。今天我就捅破这层窗户纸。 阅读全文

posted @ 2010-05-18 09:33 eaglet 阅读(3378) 评论(9) 推荐(6) 编辑

摘要:计算机的发明让很多本来很有趣的数学问题,变成了机械的穷举,让很多人遇到算法问题首先想到的就是找出所有的组合,然后穷举。没错计算机的发明确实大大加快了数学计算的速度,使我们可以计算出很多原来无法通过人工计算的数据。但计算机的速度也毕竟有限,数的数量确是无限的,如果我们遇到什么问题都去穷举,那总有一天我们会发现有些问题可能用最快的计算机算到我们头发白了都算不出来。所以在这里,我还是要呼吁一下,程序员们,让我们用数学的思维去分析算法,其实有的算法的数学逻辑真的不是太复杂,甚至就是初等代数就可以解决。下面就今天看到的这篇文章文章 一个烂算法,计算正整数被标示为连续整数的和 ,具体谈谈。 阅读全文

posted @ 2010-05-14 14:42 eaglet 阅读(3164) 评论(21) 推荐(8) 编辑

摘要:蛙蛙 上午发的一片 蛙蛙推荐:[算法练习]最长不完全匹配子串频率计算 , eaglet 看了以后,也写了一个算法,用蛙蛙给的两个参数测试,速度大概比蛙蛙的快800倍左右。如果字符串更长,速度差异会更明显。 阅读全文

posted @ 2009-09-04 10:13 eaglet 阅读(2124) 评论(17) 推荐(0) 编辑

摘要:今天在博问中看到这样一个问题 按记录总值比例分组记录 ,这个问题本质上是一个背包分组的问题。eaglet 花了2小时时间写了一个C#的实现,时间仓促,感觉还有很多值得改进的地方,不管怎么样,功能是实现了,贴出来给大家讨论吧。 阅读全文

posted @ 2009-08-28 11:02 eaglet 阅读(3471) 评论(15) 推荐(2) 编辑

摘要:谈到计算阶乘,大家可能会觉得比较简单,不就是一个循环从1一直乘到n吗?是的,确实是这样,但由于计算机的计算精度问题,利用计算机提供的现成的整数类型,我们最多可以计算到22! = 17196083355034583040 再大了,64位整形就无法存储。那么如果我们想计算100! 怎么办呢?eaglet 以前在博问中回答过类似问题,今天有空把它整理出来,供大家参考。 阅读全文

posted @ 2009-08-20 08:46 eaglet 阅读(5539) 评论(36) 推荐(2) 编辑

摘要:eaglet 曾经在KTDictSeg 中分别尝试使用规则和统计方式来识别中文(汉族)人名,但效果都不理想。在盘古分词中eaglet另辟它径,采用一种新的算法来识别中文人名,效果相比规则和统计方式要好很多。下面eaglet就来介绍这种中文人名的识别方法。 阅读全文

posted @ 2009-08-19 10:01 eaglet 阅读(17652) 评论(29) 推荐(10) 编辑

摘要:徐少侠的算法的效率已经很高了,他后来又写了一个一次循环的,但效率没有提高。我的思路也是把两次循环改为一次循环,效率上提高了20%左右。 其实这个性能优化就是扣细节了,算法上没有什么改进 对两处进行改进 1. 一开始就对A和B 加 384,这样就不需要每次计算都减384了,减少了不少减法运算 2. 一次循环 阅读全文

posted @ 2009-06-04 13:19 eaglet 阅读(2433) 评论(13) 推荐(0) 编辑

摘要:刚才在园子里看到 周利华关于 "有道难题"的两道题的算法,eaglet 做了一下,第一题比周利华的算法快10倍左右,第二天快100倍左右。 阅读全文

posted @ 2009-06-01 17:22 eaglet 阅读(3429) 评论(35) 推荐(0) 编辑

摘要:快速排序算法,网上相关文章已经介绍的很多了,数据结构教材中也有很详细的介绍。本文需要阐述的不是全排序快速排序算法,而是部分快速排序算法。所谓部分快速排序算法是指通过排序获取一个数列中最大的若干条有序记录。比如我们需要从一个有1百万记录的数组中获取前100条有序记录,并按从大到小顺序显示给用户,这种应用在搜索引擎中经常被使用,很少会有人有耐心将100万条搜索出来的记录都阅读一遍,一般阅读前几百条纪录就可以得到自己满意的答案。其实这种算法很像SQLSERVER 中的 TOP n 的实现,不过数据库是预先已经将记录通过B+树索引的方式进行了组织,实现方法完全不同。本文需要阐述的是不通过数据库,如何高效完成Top n 这种部分排序的功能。 阅读全文

posted @ 2009-05-01 14:44 eaglet 阅读(6131) 评论(5) 推荐(0) 编辑

摘要:随着双核及多核CPU的不断普及,传统的排序算法已经不能满足新的硬件性能需求。如何充分利用多核CPU带给我们的性能提升成为设计算法时不得不考虑的一个新问题。为此我写了这个并行排序算法,充分利用多核CPU来进行并行计算,从而大大提高了排序的效率。 阅读全文

posted @ 2009-04-22 12:54 eaglet 阅读(11397) 评论(15) 推荐(0) 编辑

点击右上角即可分享
微信分享提示