
算法
文章平均质量分 84
chief1985
好好学习
展开
-
[原创] 二叉平衡树AVL的插入和删除的C实现源码
导读: 复习数据结构,顺便用C实现了一下二叉平衡树AVL的插入和删除算法 共享一下,呵呵 #include #include #include #include #include typedef struct node node; struct node { node* parent; node* left; node*原创 2008-04-08 10:55:00 · 1332 阅读 · 0 评论 -
筛选法的应用-淡淡的冰-搜狐博客
导读: 筛法的应用一.用筛法求指定区间上的所有素数,并统计素数的个数. 筛法: 这是一种效率较高的算法. 求素数的筛法是公元前3世纪的厄拉多塞(Eratosthenes)提出来的:对于一个大整数X,只要知道不超过 sqrt(X)的所有素数,划去所有p的倍数2p,3p,...剩下的整数就是不超过X的全部素数. 应用筛法求素数,为了方便实施"划去"操作,应原创 2008-05-08 18:57:00 · 1148 阅读 · 0 评论 -
Splay Tree,中文叫伸展树,或者分裂树
导读: (1)为什么需要splay tree?各种查找树存在不足。比如:对于一个有n个节点的平衡树,虽然最坏情况下每次查找的时间复杂度不会超过O(logn),但是如果访问模式不均匀,平衡树的效率就会受到影响。此外,它们还需要额外的空间来存储平衡信息。这些查找树的设计目标都是减少最坏情况下单次操作时间,但是查找树的典型应用经常需要执行一系列的查找操作,此时更关心的性能指标是所有这些操作总共需要 多少转载 2008-05-16 23:08:00 · 2623 阅读 · 0 评论 -
伸展树与半伸展树Java实现 http://www.blogjava.net/javacap/archive/2007/12/19/168627.html
伸展树与半伸展树属于自组织的数据结构,能按访问频率调整节点的位置调整一般通过如下方式:1)绕根的单旋转,跟AVL的单旋转类似2)一字型旋转(ZigZig Rotation)3)之字形旋转(ZigZag Rotation)旋转操作较简单,有点点繁琐。半伸展树不做完全的一字型旋转,它只让父节点绕祖父节点做单旋转。不管怎样,每次访问(插入/查找 ,删除时展开被删除父节点)后把该节点调整到根节点的位置伸展转载 2008-05-16 23:10:00 · 1444 阅读 · 0 评论 -
Strassen矩阵乘法
导读: 矩阵乘法是线性代数中最常见的运算之一,它在数值计算中有广泛的应用。若A和B是2个n×n的矩阵,则它们的乘积C=AB同样是一个n×n的矩阵。A和B的乘积矩阵C中的元素C[i,j]定义为: 若依此定义来计算A和B的乘积矩阵C,则每计算C的一个元素C[i,j],需要做n个乘法和n-1次加法。因此,求出矩阵C的n2个元素所需的计算时间为0(n3)。 60年代末,Strasse原创 2008-06-02 00:09:00 · 1431 阅读 · 0 评论 -
Strassen algorithm
导读: In the mathematicaldiscipline of linear algebra, the Strassen algorithm, named after Volker Strassen, is an algorithmused for matrix multiplication. It is asymptotically faster than the stan原创 2008-06-02 00:08:00 · 2385 阅读 · 0 评论 -
算法设计与分析 ppt
导读: 【PPT】算法设计与分析文件格式:PPT/Microsoft Powerpoint - HTML版算法概述 一,算法与程序 算法的概念(性质) 算法与程序 算法的描述方法 二,算法复杂性分析 算法复杂性的意义 渐进...概率算法 了解概率算法的特点和适用范围 理解产生伪随机数的算法 掌握集中概率算法的设计思想 数值概率算法 蒙特卡罗... classmates.welkin原创 2008-06-17 22:18:00 · 7188 阅读 · 0 评论 -
1. 遗传算法的数据结构
导读: 大致画了下数据结构的逻辑图,如下: 例如,求解一个Camel函数在区间-100 f(x,y)=[4 - 2.1(x^2) + (x^3)/3](x^2) + xy +[-4 +4(y^2)](y^2) 这时候就需要两个基因,每个基因上限是100,下限是-100. 假设数值求解的精度为10^(-7),那么对应的二进制编码长度N可以这样确定 (2^N)-1 >=原创 2008-06-20 18:40:00 · 2033 阅读 · 0 评论 -
四种排序算法学习
导读: 无聊中eMule了一份中文版的>来看,发现是1993年出版的古物,寒。 在网上google一通,发现一个网站Computer Programming Algorithms Directory,进去先看看Sorting Algorithms部分。 所以今天学习了一下四种排序算法,见Andrew Kitchen的Sorting Algorithms的applet动画显示转载 2008-06-19 21:31:00 · 1586 阅读 · 0 评论 -
十个利用矩阵乘法解决的经典题目
导读: 好像目前还没有这方面题目的总结。这几天连续看到四个问这类题目的人,今天在这里简单写一下。这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质。 不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符。在数学中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的原创 2008-06-24 21:52:00 · 1862 阅读 · 1 评论 -
Strassen矩阵乘法
导读: 矩阵乘法是线性代数中最常见的运算之一,它在数值计算中有广泛的应用。若A和B是2个nn的矩阵,则它们的乘积C=AB同样是一个nn的矩阵。A和B的乘积矩阵C中的元素C[i,j]定义为: 若依此定义来计算A和B的乘积矩阵C,则每计算C的一个元素C[i,j],需要做n个乘法和n-1次加法。因此,求出矩阵C的n2个元素所需的计算时间为0(n3)。 60年代末,Strassen采用原创 2008-06-25 15:37:00 · 252 阅读 · 0 评论 -
递归算法
导读: 递归是设计和描述算法的一种有力的工具,它在复杂算法的描述中被经常采用。采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。(引自:http://b原创 2008-06-28 16:27:00 · 1309 阅读 · 0 评论 -
素数表 与 质因数分解
导读: namespace?primeNS{ /*解决:素数表 *算法:筛法 *输入:范围MaxN *输出:素数个数pp,?素数表[p[0],p[pp]) *备注:效率:1千万时,sicily-0.59?ZOJ-0.85?(朴素版sicily1.00) */????const?int?MaxN=?10000000?//查找[2,maxN]范围的素数????con原创 2008-05-08 17:48:00 · 1517 阅读 · 0 评论 -
标程:素数表 与 质因数分解 - Acumon的博客 - IT博客网
导读: 特别鸣谢飞飞提醒,生成素数表效率一下提高了40%之多! namespace primeNS { /**/ /* 解决:素数表 *算法:筛法 *输入:范围MaxN *输出:素数个数pp, 素数表[p[0],p[pp]) *备注:效率:1千万时,sicily-0.59 ZOJ-0.85 (朴素版sicily1.00) */原创 2008-05-08 13:25:00 · 1129 阅读 · 0 评论 -
矩阵相乘算法_C语言空间
导读: 一、两个矩阵相乘的经典算法: 若设Q=M*N其中,M是m1*n1矩阵,N是m2*n2矩阵。当n1=m2时有: for (i=1;i for ( j=1; j Q[i][j]=0; for(k=1; k原创 2008-05-06 17:48:00 · 27033 阅读 · 1 评论 -
红黑树: 理论与实现(理论篇)_Null
导读: 红黑树: 理论与实现(理论篇)[修订版]原创:司徒彦南 2002年8月19日 红黑树是一种很有意思的平衡检索树。它的统计性能要好于平衡二叉树(有些书籍根据作者姓名,Adelson-Velskii和Landis,将其称 为AVL-树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multim原创 2008-04-08 10:49:00 · 4066 阅读 · 0 评论 -
红黑树(red-black tree)算法,附AVL树的比较
导读: linux内核中的用户态地址空间管理使用了红黑树(red-black tree)这种数据结构,我想一定有许多人在这种数据结构上感到困惑,我也曾经为此查阅了许多资料以便了解红黑树的原理。最近我在一个外国网站上看到一篇讲解红黑树的文章,觉得相当不错,不敢独享,于是翻译成中文供所有内核版的弟兄们参考。由于本人水平有限,难免有出错之处,欢迎大家指正。 原文网址:http://sag原创 2008-04-08 10:51:00 · 2725 阅读 · 0 评论 -
红黑树 - Wikipedia
导读: 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,原创 2008-04-08 11:04:00 · 1131 阅读 · 0 评论 -
红黑树的Java实现 [z] - liudaoru - JavaEye技术网站
导读: From: http://www.blogjava.net/javacap/archive/2007/12/20/169120.html红黑树可能是要考虑情况最多的BST树了,它有自己的规则(见代码的注释),通过这些规则可以保证花费较小的代价来达到相对平衡。注意,红黑树仍然不是平衡树,但是统计性能要好于AVL树。要保持红黑树的规则,主要通过两类操作,一类是换色,一类还是旋转。红原创 2008-04-08 11:16:00 · 929 阅读 · 0 评论 -
动态规划——序
导读: 动态规划是对最优化问题的一种新的算法设计方法。由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的没计法对不同的问题,有各具特色的表示方式。不存在一种万能的动态规划算法。但是可以通过对若干有代表性的问题的动态规划算法进行讨论,学会这一设计方法。 这里,在内容的编排上,我们从问题开始引入概念,若你对概念的形成不必通过实例得到,可以直接从第二节开始。 多阶段决策原创 2008-04-15 15:52:00 · 986 阅读 · 0 评论 -
常用算法—第 5 章 分枝定界【Part2】 | Feng子曰
导读: 常用算法---第 5 章 分枝定界【Part2】5.2.2 0/1背包问题0 / 1背包问题的最大收益分枝定界算法可以由程序1 6 - 6发展而来。可以使用程序1 6 - 6的B o u n d函数来计算活节点N的收益上限u p ,使得以N为根的子树中的任一节点的收益值都不可能超过u p r o f i t。活节点的最大堆使用u p r o f i t作为关键值域,最大堆的每原创 2008-04-15 18:33:00 · 1521 阅读 · 0 评论 -
矩阵链相乘算法(动态规划)--算法导论示例 - 付之东流 - 优快云Blog
导读: 作为经典的动态规划算法举例,矩阵连乘问题很好地展现了动态规划的特点和实用价值。给定n个矩阵{A1,A2,...,An},其中Ai与Ai+1是可乘的,i=1,2,...n-1。现在要计算这n个矩阵的连乘积。由于矩阵的乘法满足结合律,所以通过加括号可以使得计算矩阵的连乘积有许多不同的计算次序。然而采用不同的加扩号方式,所需要的总计算量是不一样的。若A是一个p*q矩阵,B是一个q*r矩阵原创 2008-04-15 18:34:00 · 2289 阅读 · 1 评论 -
动态规划解决矩阵链乘问题的java编码实现
算法实现了三个类Matrix, MatrixChainOrder, MatrixArray在Matrix类中实现了矩阵的随机产生和两个矩阵的相乘在MatrixArray中实现了矩阵链的随机产生和根据矩阵链随机产生矩阵,矩阵的连续相乘和矩阵链根据动态规划产生的最优相乘方法相乘在MatrixChainOrder中实现了矩阵链乘的最优解程序可直接编译运行,其中经过测算当矩阵为1000个元转载 2008-04-15 19:13:00 · 1979 阅读 · 1 评论 -
Gzip Zlib PNG 压缩算法 Gzip源码详解 - jiurl的专栏 - 优快云Blog
导读: Gzip Zlib PNG 压缩算法 Gzip源码详解作者: JIURL 主页: http://jiurl.yeah.net 日期: 2004-3-1 (测试版) gzip,zlib,以及图形格式png,使用的是同一个压缩算法deflate。我们通过对gzip源码的分析来对deflate压缩算法做一个详细的说原创 2008-04-19 23:01:00 · 2751 阅读 · 0 评论 -
LZW数据压缩算法的原理分析 - jillzhang - 博客园
导读: 我希望通过本文的介绍,能给那些目前不太了解lzw算法和该算法在gif图像中应用,但渴望了解它的人一些启发和帮助。抛砖引玉而已,更希望园子里面兄弟提出宝贵的意见。1.LZW的全称是什么? Lempel-Ziv-Welch (LZW).2. LZW的简介和压缩原理是什么? LZW压缩算法是一种新颖的压缩方法,由Lemple-Ziv-Welch 三人共同创造,用他们的名字命名。它原创 2008-04-19 22:53:00 · 2836 阅读 · 0 评论 -
Flash的压缩算法 - 秀策坊
导读: 由于要解决大数据传输问题,所以前几天研究了一下,Flash的压缩算法,8.5以前版本的FlashPlayer本身没有压缩算法,所以只能用户自己写,清风同志挑选了LZW算法,因为是无损压缩,而且压缩比很高,但使用过程中发现压缩速度以及对cpu的占用确实有些高(一个64K的字符串,压缩后大概是14-16K之间,结果很好,但是过程大概要用1.5秒,有明显的停顿感,要是120K客户端可就受原创 2008-04-19 22:59:00 · 3604 阅读 · 0 评论 -
几个小算法
导读:wo 介绍几个小算法:数制转换、数据交换、最大公约数、N次方快速算法、KMP算法。这几个算法在相关数据结构和算法书上都有介绍,这里给出C语言实现例子,供大家参考。(刘爱贵 / Aiguille.LIU) 1、数制转换算法 十进制数N转换为d进制数,根据公式 N = (N div d) * d + N mod d实现 ,堆栈的典型应用。C语言实现如下: #include原创 2008-06-28 16:38:00 · 1243 阅读 · 0 评论