网站大量收购闲置独家精品文档,联系QQ:2885784924

用舍伍德算法实现线性表的快速查找.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用舍伍德算法实现线性表的快速查找

学生学号 104972101535 论文成绩 武汉理工大学 研究生课程论文 课程名称 算法设计与分析 论文题目 用舍伍德算法实现线性表的快速查找 专业班级 软件工程101 学生姓名 王洪洋 任课老师 夏红霞 2010 — 2011 学年 第 二 学期 摘要: 舍伍德算法是概率算法的一种,该文在比较线悱表的顺序存储与链式存储的特点之后,提出了一种较优的数据结构——用数组模拟链袁。理论上证明了采用舍伍德算法进行查找运算的时间复杂度为0(n),),并在计算机上给出相应数据的模拟。 关键词:舍伍德算法;概率算法;查找 Abstract: Sherwood algorithm is a kind of probability algorithm. After comparing characteristic of linear list stored by sequential array and single inked fist. The paper puts forward a data structure一一Linked list simulating by array. And it proves that time complexity of search operation is 0(n) by it in theory. At last,the paper gives some data testing in computer Key words: Sherwood algorithm;Probability algorithm; Search 前言: 所谓概率算法,就是在算法的过程中引入随机数,使得算法在执行的过程中随机选择下一个计算步骤。 很多算法的每一个计算步骤都是固定的,而概率算法允许算法在执行的过程中随机选择下一个计算步骤。许多情况下,当算法在执行过程中面临一个选择时,随机性选择常比最优选择省时。因此概率算法可在很大程度上降低算法的复杂度。?   概率算法的特征是对所求解问题的同一实例用同一概率算法求解两次可能得到完全不同的效果(时间和结果)。 正文: l舍伍德算法 设A是一个确定性算法,当它的输入实例为x时所需的计算时间记为tA(x)。设Xn是算法A的输入规模为n的实例的全体,则当问题的输入规模为n时,算法A所需的平均时间为 这显然不能排除存在x∈Xn使得 的可能性。希望获得一个概率算法B,使得对问题的输入规模为n的每一个实例均有 这就是舍伍德算法设计的基本思想。当s(n)与tA(n)相比可忽略时,舍伍德算法可获得很好的平均性能。 概率算法的一个特征是对同一实例用同‘概率算法求解 两次可能得到完全不同的结果。这两次求解可能会得到相当 大的差别。概率算法大致有4类:数值概率算法,蒙特R罗 算法,拉斯维加斯算法和舍伍德算法。本文采用舍伍德算法 来求解。 舍伍德算法总能求得闷题的一个解,且所求的解总是正 确韵。当一个确定性算法在最坏情况下的计算复杂性与在平 均情况下的计算复杂性的较大差别时,可在这个确定性算法 中引入随机性将它改造成一个舍伍德算法,消除或减少问题 的好坏实例悯的这种差别。该算法的精髓1:足避免算法的最 坏情况行为,而足没法消除这种最坏情况行为与特定实例之 间的关联性。 2线性袁的组织 在现实世界中,线性表的倒子枚不胜举,如一幅扑克牌的点数(2,3,4,…,J,Q,K,A)可构成一个线性表;数据库表中的记录也可以构成一个线性表,只不过是该线性表中的数据元索稍复杂一点罢了。正因为线性表如此重要,ANSl和ISO于1998年制定的STL(Standard Template Library)中提供了对线性表的支持。STL的容器是用来防止各种类型的对象,其中每一个容器类就是计算机的一个基本数据结构。STL有以下7个最基本的容器类:向照(Vector),列表(List),双端队列(Deque),集合(Set),多重集合(Multiset),映像(Map),多重映像(Multimap)等。 线性表的存储有两种方式:顺序存储和链式存储。从空问的角度看,链式存储的存储密度低,因为它需要存储附加的指针域的数据。而顺序存储不需要存储附加信息,因而存储效率比较高;从时间角度来看,由于顺序存储的逻辑顺序与物理顺序一致,其存储可采用其索引号来加以存取,因此是一种随机存取结构,表中的任意一个结点都可在O(1)的时间内直接存取,但是在表中插入和删除元索时耍移动大量的元素,该结构适合经常进行查

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档