如何快速查找一个结构体数组中的特定元素
如题,首先,我定义了一个结构体,结构体里面有一个名字叫APPID的整型成员。然后我又calloc了这种结构体为元素的结构体数组,数组大小为200.现在,我想快速查找数组中某一个元素的APPID为特定值(比如0x4000)的元素。目前我的方法是从头遍历,但是速度是很慢的,如何才能快速查找?
------解决方案--------------------数组大小才200,不至于很慢吧。
------解决方案--------------------从头到尾遍历一次的代价几乎肯定要花的,没什么有好的方法。
------解决方案--------------------楼主,你问的问题不就是一个查找的问题吗?
关于查找有很多快速的方法,如果你的结构一定要用数组,
你有两个选择:
1:构造一个从小到大排序的数组,然后二分查找,这样速度就比顺序查找快多了。
2:如果内存空间够大,你可以使用hash。这样查找速度更快。
如果你的结构不一定要用数组,那么你的选择就更多了,这里就不一一介绍了。
------解决方案--------------------
这样的方法,你要先排序,而如果计算上排序的时间规模,就不一定哪个更好了。
就要case by case的看。
------解决方案--------------------
那也得看看吧,如果你是取的次数多,存一次,那排序下了二分法的开销还是值得的