集合与静态查找表知识点

静态查找表---静态存储

动态查找表----树、散列表(唯一仅适用于集合的存储结构)

 

查找: 内部查找-----比较次数作为衡量标准

         外部---记录---访问外存次数

 

无序表:

顺序查找(O(N)) 第0个元素空出来作为哨岗,减少比较次数(避免比较下标是否合法)

1 data[0]=x;
2 for(i=N;x!=data[i];i--);
3 if(i==0) 没找到,else i

有序表:

顺序查找:和上面类似

二分查找:O(logN)最常用, low 和 high 记录查找范围 

插值查找:当访问一次比较费时并且数据分布比较均匀时。很少采用,但也是一种解决问题的办法。

分块查找:(O(√n))存在外存中,查找索引,查找块。

 

STL中相关功能

find(): 返回迭代指针,函数参数为开始位置,结束位置,查找值。例如 vector<int> ::iterator it=find(vc.begin(),vc.end(), 5); 

binary_search(): 返回bool值,代表找到或是没找到。函数参数与find相同。

 

posted on 2017-03-03 15:57  程十  阅读(116)  评论(0)    收藏  举报