当前位置: 首页 > article >正文

数据结构:线性表查找的三种方式

只要是静态查找表即可

#define ElemType int
typedef struct {
ElemType *d;
int length;
}SSTable;

顺序查找 S(n)=O(1) 哨兵空间

int Search_Seq(SSTable t,ElemType key)
{
    t.d[0]=key;
    for (int i = t.length; i >0 ; i--) {
        if(t.d[i]==t.d[0])
        {
            return i;
        }
    }
    return 0;
}

折半查找(二分查找):要求必须是顺序存储,且元素内有序

非递归

int Search_bin_notDG(SSTable t,ElemType key)
{
    int low=1,high=t.length-1;
    while (low<=high)
    {
        int mid=(high+low)/2;
        if(t.d[mid]==key)
        {return mid;}
        else if(t.d[mid]>key)
        {
            high=mid-1;
        } else{
            low=mid+1;
        }
    }
    return 0;
}

递归

int Search_bin_DG(SSTable t,ElemType key,int high,int low)
{
    if(low>high)
    {return 0;}
    int mid=(low+high)/2;
    if(t.d[mid]==key)
    {return mid;}
    else if(t.d[mid]<key)
    {
        Search_bin_DG(t,key,high,mid+1);
    }
    else
    {
        Search_bin_DG(t,key,mid-1,low);
    }


}

分块查找:主要是利用索引表进行查找,块间有序,块内有无序决定块内查找方式


http://www.kler.cn/a/526324.html

相关文章:

  • RK3568中使用QT opencv(显示基础图像)
  • QT设置应用程序图标
  • 联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署
  • 如何将xps文件转换为txt文件?xps转为pdf,pdf转为txt,提取pdf表格并转为txt
  • Pyside的QWebEngineProfile类
  • 【xcode 16.2】升级xcode后mac端flutter版的sentry报错
  • 向下调整算法(详解)c++
  • 指针空值——nullptr(C++11)——提升指针安全性的利器
  • Hive:静态分区(分区语法,多级分区,分区的查看修改增加删除)
  • 无公网IP 外网访问 本地部署夫人 hello-algo
  • 【赵渝强老师】K8s中Pod探针的TCPSocketAction
  • 新年手搓--本地化部署DeepSeek-R1,全程实测
  • Pandas进行MongoDB数据库CRUD
  • 题海拾贝:二叉树遍历
  • 【愚公系列】《循序渐进Vue.js 3.x前端开发实践》028-组件Props属性的高级用法
  • 文件上传2
  • vue3第三部分--组件通信
  • 【2024年华为OD机试】 (C卷,100分)- 最大括号深度(Java JS PythonC/C++)
  • python开发,最好的环境是什么
  • ThreadLocal源码解析
  • 5.3.2 软件设计原则
  • [JavaWeb]搜索表单区域
  • Windows11暂停自动更新
  • (二)PosrgreSQL: Python3 连接Pgvector出错排查
  • 巴塞尔问题详解:计算所有正整数平方的倒数之和
  • DeepSeek R1本地部署详细指南