集合与静态查找表知识点
静态查找表---静态存储
动态查找表----树、散列表(唯一仅适用于集合的存储结构)
查找: 内部查找-----比较次数作为衡量标准
外部---记录---访问外存次数
无序表:
顺序查找(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相同。
浙公网安备 33010602011771号