
算法
文章平均质量分 82
eaglet
这个作者很懒,什么都没留下…
展开
-
并行排序算法
并行排序算法 Author:Eaglet 今天早晨看到 蛙蛙池塘 的这篇博客 谁能把这个程序的性能提升一倍?---并行排序算法 。促使我写了一个并行排序算法,这个排序算法充分利用多核CPU进行并行计算,从而提高排序的效率。 先简单说一下蛙蛙池塘给的A,B,C 三种算法(见上面引用的那篇博客),A算法将耗时的平方和开平方计算放到比较函数中,导致Array.原创 2009-05-25 09:30:00 · 2076 阅读 · 0 评论 -
采用部分快速排序算法实现数组的部分排序
采用部分快速排序算法实现数组的部分排序 Author: Eaglet 快速排序算法,网上相关文章已经介绍的很多了,数据结构教材中也有很详细的介绍。本文需要阐述的不是全排序快速排序算法,而是部分快速排序算法。所谓部分快速排序算法是指通过排序获取一个数列中最大的若干条有序记录。比如我们需要从一个有1百万记录的数组中获取前100条有序记录,并按从大到小顺序显示给用户,这种应用原创 2009-05-25 09:34:00 · 1489 阅读 · 0 评论 -
有道难题之eaglet的算法
有道难题之eaglet的算法 刚才在园子里看到 周利华关于 "有道难题"的两道题的算法,eaglet 做了一下,第一题比周利华的算法快10倍左右,第二天快100倍左右。由于eaglet不符合参赛条件,所以就在博客园和大家交流交流吧。原帖链接 第一道算法题(250分) 话说你在走路上班时,经过一片种植萝卜的农田。这块田地的形状是一个矩形的网格原创 2009-08-29 11:56:00 · 694 阅读 · 1 评论 -
有道难题之OO
有道难题之OO 有人提出要用OO的思路来解决算法问题,OK,没问题,eaglet 今天就尝试用OO来实现算法。既然谈OO,我们就重点讨论设计,不重点讨论算法的效率了。 在开始OO之前,我想先说说什么是OO设计。OO设计就是面向对象设计,有人说不要认为你用了C#就OO了,不错用C#照样可以写出面向过程的代码。不过eaglet 还有补充一下,不要认为你用了class就原创 2009-08-29 11:59:00 · 556 阅读 · 0 评论 -
有道难题第一题 在徐少侠的算法基础上改进
徐少侠的算法 见 有道难题第一题非OO解,极端记录160ms这个算法的效率已经很高了,徐少侠后来又写了一个一次循环的,但效率没有提高。我的思路也是把两次循环改为一次循环,效率上提高了20%左右。其实这个性能优化就是扣细节了,算法上没有什么改进 对两处进行改进1. 一开始就对A和B 加 384,这样就不需要每次计算都减384了,减少了不少减法运算2. 一次循环原创 2009-08-29 12:01:00 · 2748 阅读 · 0 评论 -
计算任意数值的阶乘
计算任意数值的阶乘作者:eaglet 谈到计算阶乘,大家可能会觉得比较简单,不就是一个循环从1一直乘到n吗?是的,确实是这样,但由于计算机的计算精度问题,利用计算机提供的现成的整数类型,我们最多可以计算到22! = 17196083355034583040 再大了,64位整形就无法存储。那么如果我们想计算100!怎么办呢?eaglet 以前在博问中回答过类似问题,今原创 2009-08-29 12:10:00 · 3151 阅读 · 0 评论 -
背包分组问题的解法
背包分组问题的解法作者:eaglet 今天在博问中看到这样一个问题 按记录总值比例分组记录 ,这个问题本质上是一个背包分组的问题。eaglet 花了2小时时间写了一个C#的实现,时间仓促,感觉还有很多值得改进的地方,不管怎么样,功能是实现了,贴出来给大家讨论吧。 我先把原题的意思按照我的理解再描述一遍: 有数组A 假设为 int[] goods =原创 2009-08-29 12:11:00 · 2681 阅读 · 0 评论 -
最长不完全匹配子串频率计算-eaglet 的解法
蛙蛙 上午发的一片 蛙蛙推荐:[算法练习]最长不完全匹配子串频率计算 , eaglet 看了以后,也写了一个算法,用蛙蛙给的两个参数测试,速度大概比蛙蛙的快800倍左右。如果字符串更长,速度差异会更明显。算法描述:找出一个长字符串里的某个特定的子串出现的频率,匹配的子串的上一个字符和下一个字符不需要紧紧相邻,只要满足下一个字符在当前字符的后面就行。算法要求:长字符串的宽度最原创 2009-12-15 11:41:00 · 2684 阅读 · 0 评论