引言: [原创] zengyi820 2003-06-14 组合算法概论(A Brief Introduction to Combinatorial Algorithm) 组合算法是算法分析学当中非常重要的一个分支,关于它在计算机科学的地位我就不敖述了,下面为大家整理了整个材料,算法是我收集的,只是分门...
摘要:1. 引论
其实,我这个人并不喜欢和谁在网络上公开宣战,或者直接对抗。因为我一直都是崇尚合作的,坚持理性,羡慕和平的。但是,今天又发生了一件类似的事情,使我不得不重提去年就发过的一个贴子中的观点,这次还要对这个观点的外延进行扩大。因为我发现做一个老手太难了,总是在受新手的气!尤其是那些心高气傲的新手!虽然这样的人数量不多,但是遇到一个就会让你尴尬半天,说出来的话能气死你!奉劝这样的新手一句话:新......
摘要:很久以前的一篇文章,当初应该是《程序员》的稿子,有没有发表我就已经忘记了,今年在整理的过程中突然找到了,也不知道里面的观点是否正确,仅仅当着一个过去的思考,关于longhorn的介绍,请参考《msdn开发精选》第一期的特别策划
longhorn时代,浏览器的终结?
——关于avalon和xaml
写完那场浏览器大战,我内心始终无法平静,也许是还没有从场戏的情景......
组合算法概论(1)[原创] zengyi820 2003-06-14 组合算法概论(a brief introduction to combinatorial algorithm) 【程序编程相关:
带右键菜单的树形控件(1)】 【推荐阅读:
十年程序人生后的感悟---从1994到2】 组合算法是算法分析学当中非常重要的一个分支,关于它在计算机科学的地位我就不敖述了,下面为大家整理了整个材料,算法是我收集的,只是分门别类简单介绍一下,然后把我的材料做了个整理,大家收藏吧,感觉挺有用的,费了我好长时间与精力呀,我现在准备考研了,没有太多时间发很多经典文章了,这片算是大部头了. 【扩展信息:
HTC(HTML Component)初】 关于组合学问题的算法,计算对象是离散的.有限的数学结构.从方法学的角度,组合算法包括算法设计与算法分析两个方面.关于算法设计,历史上已经总结出了若干带有普遍意义的方法与技术,包括动态规划.回溯法.分支限界法.分治法.贪心法等.下面我们着重谈谈几个有代表性的组合算法: 单纯形法: 这是一种线性规划算法,由g.b.dantzig在1947年提出,后来由他与其他的学者又提出了单纯形法的变形与改进.这些被实践证明都是行之有效的,线性规划研究线性目标函数在一组线性等式与线性不等式约束下的极值问题.这本来是连续问题,dantzig发现线性规划问题的可行解集(即满足约束条件的点的全体)是一个超多面体.如果它的最优解存在,那么这个最优解一定可以在超多面体的一个顶点取到.由于超多面体的顶点只有有限个,从而使线性规划成为一个组与优化问题.单纯形法是按照一定的规则,从可行解集的一个顶点转移到另一个顶点,使得目标函数的值不断地得到改进,最后达到最优.尽管单纯形法一直使用得很好,但是在最坏情况下它需要指数运行时间,从而使线性规划问题是否属于p类一度成为人们关心的问题.后来的椭球算法与投影算法都很好的解决了这个问题. 排序与检索: 这两部分应当是大家比较熟悉的,所谓排序,就是将给定的元素序列按照某种顺序关系重新排列成有序序列.例如将n个数组成的序列按照从小到大的顺序重新排列;将n个英语单词组成的的序列按照字典顺序重新排列.所谓检索,就是在给定的集合中查找某个特定的元素或是元素组.排序与检索已经成为计算机科学技术中最基本.使用最频繁的算法.下面我们专门谈谈排序算法(sorting algorithm). 在讨论此种算法时,数据通常是指由若干记录组成的文件,每个记录包含一个或多个数据项,其中能够标志该记录的数据项称为键码.给定一文件的n个记录{r1,r2,…,rn}及其相应的键码的集合{k1,k2,…,kn}.所谓排序算法就是在数据处理中将文件中的记录按键码的一定次序要求排列起来的算法.若待排序的文件能够同时装入计算机的主存中,整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序;若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,有一部分必须放在外存上,则称此类排序问题为外部排序.当待排序的文件中包含有一些相同键码的记录时,如果经过排序后这些相同的键码的记录的相对次序仍然保持不变,则相应的排序算法是稳定的,否则为不稳定的.如果排序算法设计成单处理机完成的,则此排序算法称为串行(或顺序)排序算法;如果排序算法时设计成多处理机实现的,则称为并行排序算法. 首先谈谈内部排序:内部排序的过程是一个逐步扩大记录的有序序列长度的过程.在排序的过程中,参与排序的记录序列中存在两个区域:有序区与无序区. 使有序区中记录的数目增加一个或几个的操作称为一趟排序. 逐步扩大记录有序序列长度的方法大致有下列几类: 一.插入排序 假设在排序过程中,记录序列r[1..n]的状态为: 则一趟直接插入排序的基本思想为:将记录r 插入到有序子序列r[1..i-1]中,使记录的有序序列从r[1..i-1]变为r[1..i]. 显然,完成这个“插入”需分三步进行: 1.查找r的插入位置j+1; 2.将r[j+1..i-1]中的记录后移一个位置; 3.将r复制到r[j+1]的位置上. [i]直接插入排序 利用顺序查找实现“在r[1..i-1]中查找r的插入位置”的插入排序. 注意直接插入排序算法的三个要点: 1.从r[i-1]起向前进行顺序查找,监视哨设置在r[0]; ...
下一页 摘要:[原创] tack 2003-10-05 对于初学者用jsp+tomcat+mysql搭建j2ee算是个理想的运行环境。以往用惯了php的内置的mysql函数, jsp与mysql的连接显得有点麻烦,同时这方面的资料也有点缺乏,所以jsp与数据库的连接成为初学者的第一道门槛,jsp无法连接数据库,无疑对学习造成了巨大的阻碍。其实跨过去了,就会觉得很简单。接下来进入下面没有几个steps的step ......