免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Go_To_CU
打印 上一主题 下一主题

如何提高查找速度 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2005-09-18 21:49 |只看该作者

如何提高查找速度

我赞成 雨丝 和 mq110 的观点, 在 32 位机上用 long long 并不能加速。此外 雨丝 提出的方法不依赖于具体的语言和硬件,是很好的方法。加进去的元素一般叫什么``哨兵'' 吧,记不清楚了。

论坛徽章:
0
42 [报告]
发表于 2005-09-18 22:50 |只看该作者

如何提高查找速度

3楼的想法必须基于一个假设就是超越该数组边界的内存中必存在不等于0的,倘若超过数组边界后的很长一段内存都为0,岂不是又白白浪费一段时间啊。

论坛徽章:
0
43 [报告]
发表于 2005-09-19 07:52 |只看该作者

如何提高查找速度

[quote]原帖由 "Arghawk"]3楼的想法必须基于一个假设就是超越该数组边界的内存中必存在不等于0的,倘若超过数组边界后的很长一段内存都为0,岂不是又白白浪费一段时间啊。[/quote 发表:


呵呵,请再看看我前面的解释。超过数组边界之后的内存到底有多长一段是0
已经不重要了,关键是你已经进入了雷区,随时都有可能因内存非法访问而
出错,这个方法的思路和限制也请见前述。

在Donald E.Knuth的TAOCP的第三卷的第6.1节Sequential Searching
中讲到了顺序查找算法,同时也给出了对顺序查找的优化思路,即
Quick sequential search和Quicker sequential search,可以参考一下。

论坛徽章:
0
44 [报告]
发表于 2005-09-19 08:53 |只看该作者

如何提高查找速度

偶用memcmp行不

论坛徽章:
0
45 [报告]
发表于 2005-09-19 09:13 |只看该作者

如何提高查找速度

[quote]原帖由 "bleem1998"]偶用memcmp行不[/quote 发表:


我们讨论的是memcmp的源代码,

论坛徽章:
0
46 [报告]
发表于 2005-09-19 09:17 |只看该作者

如何提高查找速度


你们继续
在下旁观

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
47 [报告]
发表于 2005-09-19 12:09 |只看该作者

如何提高查找速度

原帖由 "雨丝风片" 发表:
我说过要“稍微修改一下”嘛,当然要做边界保护的,
比如说,可能要在数组的边界上放一个“多余”的元素。


这个方法还是不错的.
通过雨丝风片的方法.
可以这样改进将最快.
先判断最后一个元素是不是0.
如果是0的话 将最后一个元素赋值为1.

然后开始从头 按雨丝风片 所说的方法来做.
这样保证即使全是0到最后肯定不会越界.

论坛徽章:
0
48 [报告]
发表于 2005-09-19 12:24 |只看该作者

如何提高查找速度

原帖由 "mq110" 发表:


这个方法还是不错的.
通过雨丝风片的方法.
可以这样改进将最快.
先判断最后一个元素是不是0.
如果是0的话 将最后一个元素赋值为1.

然后开始从头 按雨丝风片 所说的方法来做.
这样保证即使全是0到最后肯定..........


不错,这样可以在不用另外增加一个元素的空间,只不过这是一种
破坏性的查找, ,查完了之后别忘了消灭作案痕迹,把最后一个
元素恢复原值才好。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
49 [报告]
发表于 2005-09-19 12:26 |只看该作者

如何提高查找速度

原帖由 "雨丝风片" 发表:


不错,这样可以在不用另外增加一个元素的空间,只不过这是一种
破坏性的查找, ,查完了之后别忘了消灭作案痕迹,把最后一个
元素恢复原值才好。


你的思想总是十分的开阔. 每次都让我有耳目一新的感觉.
呵呵 学习.

论坛徽章:
0
50 [报告]
发表于 2005-09-19 12:38 |只看该作者

如何提高查找速度

获益匪浅,不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP