打印

C语言怎样实现快速查表?

[复制链接]
4579|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mathieu|  楼主 | 2008-7-2 15:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个数组里,事先存放了256个MAC地址;然后我每次只要得到一个MAC,都会和数组里的256个MAC做比较,看是否在数组里。如果在数组里,就删除掉数组里的该MAC,如果不在数组里,就不做处理。。请问:有什么比较好的算法,可以提高运算速度呢?

相关帖子

沙发
mylovetus| | 2008-7-2 16:05 | 只看该作者

GG,没有学过数据结构???

使用特权

评论回复
板凳
平常人| | 2008-7-2 21:51 | 只看该作者

二分法最快

使用特权

评论回复
地板
creatorwu| | 2008-7-2 21:58 | 只看该作者

二分法最快,但是要看是不是按顺序排列啊。

二分法最快,但是要看是不是按顺序排列啊。
不行就逐一比较吧。

使用特权

评论回复
5
平常人| | 2008-7-2 22:00 | 只看该作者

事先存放了256个MAC地址,当然是按顺序排列

事先存放的MAC地址,当然是按最有方法存放。

使用特权

评论回复
6
armecos| | 2008-7-2 22:16 | 只看该作者

这种情况下我一般使用CAM硬件,

    从内容得到地址,填入MAC地址,一个时钟周期后就可以得到匹配的MAC数组下标。硬件比较速度是最快的。
    
    或者使用HASH算法什么的软件方法。
    
    或者从成本考虑,你甚至可以逐一比较MAC地址,算法最简单实用,又不是匹配几万个MAC,效果差不太多。
    
    按顺序存放大可不必,每次排序太浪费时间。《ecos增值包》里有很多处理HASH算法的例子,比如:文件系统碎片、MAC地址匹配等。
    
更多内容,详见:
《培训系列“丛书”》
www.armecos.com
-----------------------------------
More details, see:
《"Series Books" of Training》
www.armecos.com

使用特权

评论回复
7
一心| | 2008-7-8 11:48 | 只看该作者

用数据链表吧

用数据链表吧,删除方便和添加比较方便哦

使用特权

评论回复
8
ayb_ice| | 2008-7-9 14:50 | 只看该作者

表格要是有规则还是可以的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

28

帖子

0

粉丝