关于SBT和AVL等六种数据结构的速度比较【信息技术】.pdfVIP

关于SBT和AVL等六种数据结构的速度比较【信息技术】.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于 SBT 和 AVL 等六种数据结构的速度比较 by sqybi 前言 由于手中有大量的关于 cashier 这道题的程序 ,而最近又听说了陈启峰创造了一个 SBT,所以突发奇 想,想通过 cashier 这道题测试一下各种数据结构哪个更快 ,也正好完成winsty 对 SBT 的测试。 参加评测的算法有: 朴素的快排加数组模拟算法 (sqybi 的程序) 朴素的二分加数组模拟算法 (sqybi 的程序) Treap(标程 ) AVL(标程 ) SBT(sqybi 的程序 ) 树状数组 (感谢Yan JiZhou 提供程序 ) 线段树 (感谢Zhang QiaoChu 提供程序 ) GBT(感谢 Jin Lin 提供程序 ,可惜还不完善,有 RE) 其中前两种是为了和后面的各种数据结构进行一个对比 ,显然那两种算法和后面的算法在时间复杂度 上没有可比性 ,从后面的测试也可以看出这一点。特别说明 ,那个GBT 是 Jin Lin 称他原创的一个数据结 构——Golden Balanced Tree,但被某些人指出可能是 AVL,这个程序写的不太对 ,但是GBT 的正确性 已经在另一道题目里验证了 (就是已经AC 了另一道题 ),可惜时间复杂度还没有验证。 另外我的 SBT 也许还可以优化 ,因为我在 Delete 这里参考了陈启峰的子程序 ,但他的程序里没有 Maintain,所以我也没有写 ,这是否会影响到程序速度还不得而知。 评测环境 在这里向大家介绍一下评测的环境 : CPU 为 Core Duo T2050,内存为 DDRII 533 512MB*2,硬盘为 80GB SATA 300MB/s(说明 :硬 盘速度较慢 ,后面有弥补的方法 ),系统为 Windows XP Home Edition SP2 Lenovo OEM 版,显卡为 GeForce Go 7300。 所有程序均用 Delphi 7 重新编译 ,以保证公平。测试器为胡伟栋的清澄工作室,内带 编译 器,但没有使用。 为了保证硬盘不影响程序运行速度 ,我特别找了一个叫做 WinMount 的软件在 1GB 的内存中 Mount 出了一块地方当作虚拟磁盘 ,这样输入输出速度可以忽略不计。 所有测试点运行时间 1 sec,内存限制 128MB。 测试点总共 10 个,为原题测试的输入输出数据 ,未改动。 评测结果 经过评测 ,我们发现 :树状数组、Treap、SBT 以及 AVL 的速度不相上下 ,不过SBT 稍稍快一点点。 而线段树的速度明显比前四种慢得多。而 Jin Lin 提供的 GBT 速度则有些慢,甚至比线段树还要慢 (说明: 这句话并不准确 ,因为我手中的 GBT 只能 AC 两个点,我是通过这两个点来判断的。但它们都不是数据很 大的点,所以不能确定 GBT 一定慢)。可以发现二分和快拍远远的落在了后面——二分有 3 个点 TLE,而 快排竟然有 8 个点 TLE ! 在内存 占用上 ,二分和快排是最小的(废话…… ),其次是 SBT 和 AVL,接下来是树状数组 ,然后是 Treap,接着是 GBT,最大的是线段树。可以发现 SBT 可以完全取代 Treap 的地位 ,即使在编程复杂度上 也不比 Treap 难多少 (说明:编程复杂度更多的是个人体会 ,以上是我在编写 SBT 和 Treap 时的体会 ,不 一定代表大多数人的意见 )。 俗话说得好 ,数字是不会骗人的,现在我就把评测结果发上来。 总用时 SBT---0.71 sec AVL---0.74 sec 树状数组---0.75 sec Treap---0.76 sec 线段树---1.11 sec 二分---3 TLEs 快排---8 TLEs GBT---8 REs,未完成测试 每个测试点用时及内存占用 SBT cashier-0(cashier1.in

文档评论(0)

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

1亿VIP精品文档

相关文档