#顺序表的按位置查找与按值查找
##按位查找
- 代码实现
//顺序表的静态分配时的查找
#define MAXSIZE 10 //定义最大长度
typedef struct {
ElemType data[MAXSIZE];
int length;
}
ElemType GetElem(SqList L, int i){
return L.data[i-1];//物理位置
}
动态分配顺序表的按位置查找
typedef struct {
Elemtype *data; //指示动态分配数组的指针
int MaxSize; //顺序表的最大容量
int length; //顺序表的当前长度
} SeList
ElemType GetElem(SqList L, int i){
return L.data[i-1];//物理位置
}
#时间复杂度O(1) ,随机存取
2. 按值查找
typedef struct {
Elemtype *data; //指示动态分配数组的指针
int MaxSize; //顺序表的最大容量
int length; //顺序表的当前长度
} SeList
//在顺序表L中查找第一个元素值等于e的元素,并返回其位序
int LocateElem ( SeList L, ElemType e){
for( int i=0; i<L.length; i++){
if(L.datd[i]==e)
return i+1; //数组下标为i的元素的值等于e, 返回其位序i+1
return 0;//退出循环,说明查找失败
}
}
![时间复杂度](https://img-blog.csdnimg.cn/98dbbccc4ba74d089e70878780eae1e8.png)
![时间复杂度](https://img-blog.csdnimg.cn/c60cba234e574ec495c76f01dab30e9a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd2VpeGluXzUxMjczNjg2,size_20,color_FFFFFF,t_70,g_se,x_16)