06-顺序表的查找操作

134 阅读1分钟

按位查找

  • GetElem(L,i)GetElem(L, i):按位查找操作。获取表 LL 中第 ii 个位置的元素的值。

    #define InitSize 10 // 顺序表的初始长度
    typedef struct{
        ElemType data[MaxSize]; // 静态分配
        int length;
    } SqList;
    
    ElemType GetElem(SqList L, int i) {
        return L.data[i-1];
    }
    
  • 时间复杂度:O(1)O(1)

按值查找

  • LocateElem(L,e)LocateElem(L, e):按值查找操作。在表 中查找具有给定关键字值的元素。

    #define InitSize 10 
    typedef struct{
        ElemType *data; // 指示动态分配数组的指针
        int MaxSize;
        int length;
    } SeqList;
    
    int LocateElem(SeqList L, ElemType e) {
        for(int i = 0; i < L.length; i++){
            if (L.data[i] == e) {
                return i+ 1; // 数组下标为 i 的元素值等于 e,返回其位序 i+1
            }
        }
        return 0; // 说明查找失败
    }
    
  • 时间复杂度:O(n)O(n)