如何快速查找一个结构体数组中的特定元素

VNROOY 2013-01-21 12:35:55
如题,首先,我定义了一个结构体,结构体里面有一个名字叫APPID的整型成员。然后我又calloc了这种结构体为元素的结构体数组,数组大小为200.现在,我想快速查找数组中某一个元素的APPID为特定值(比如0x4000)的元素。目前我的方法是从头遍历,但是速度是很慢的,如何才能快速查找?
...全文
1445 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxjnetwork 2013-01-22
  • 打赏
  • 举报
回复
引用 5 楼 goodboy1881 的回复:
引用 4 楼 zhou19891113 的回复:楼主,你问的问题不就是一个查找的问题吗? 关于查找有很多快速的方法,如果你的结构一定要用数组, 你有两个选择: 1:构造一个从小到大排序的数组,然后二分查找,这样速度就比顺序查找快多了。 2:如果内存空间够大,你可以使用hash。这样查找速度更快。 如果你的结构不一定要用数组,那么你的选择就更多了,这里就不一一……
那也得看看吧,如果你是取的次数多,存一次,那排序下了二分法的开销还是值得的
积木 2013-01-22
  • 打赏
  • 举报
回复
引用 4 楼 zhou19891113 的回复:
楼主,你问的问题不就是一个查找的问题吗? 关于查找有很多快速的方法,如果你的结构一定要用数组, 你有两个选择: 1:构造一个从小到大排序的数组,然后二分查找,这样速度就比顺序查找快多了。 2:如果内存空间够大,你可以使用hash。这样查找速度更快。 如果你的结构不一定要用数组,那么你的选择就更多了,这里就不一一介绍了。
这样的方法,你要先排序,而如果计算上排序的时间规模,就不一定哪个更好了。 就要case by case的看。
Ericz 2013-01-22
  • 打赏
  • 举报
回复
楼主,你问的问题不就是一个查找的问题吗? 关于查找有很多快速的方法,如果你的结构一定要用数组, 你有两个选择: 1:构造一个从小到大排序的数组,然后二分查找,这样速度就比顺序查找快多了。 2:如果内存空间够大,你可以使用hash。这样查找速度更快。 如果你的结构不一定要用数组,那么你的选择就更多了,这里就不一一介绍了。
积木 2013-01-21
  • 打赏
  • 举报
回复
从头到尾遍历一次的代价几乎肯定要花的,没什么有好的方法。
VNROOY 2013-01-21
  • 打赏
  • 举报
回复
尽量优化算法嘛
louyong0571 2013-01-21
  • 打赏
  • 举报
回复
数组大小才200,不至于很慢吧。

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧