美文网首页
线性表查找

线性表查找

作者: 日常表白结衣 | 来源:发表于2017-07-30 15:55 被阅读0次

【静态查找】

/* 顺序查找 
查找关键字为K的数据
Tb1 为指针,其元素一个为指向数组的头一个是数组长度 */
int SequentialSearch(List Tb1,ElementType K)
{
    //时间复杂性O(n)
    int i;
    Tb1->Element[0]=K;  //建立哨兵,占据在数组的0位置,数组元素从1开始存放
    for(i=Tb1->Length;Tb1->Element[i]!=k;i--);
        return i;
    /* 无哨兵顺序查找 
        int i;

        for(i=Tb1->Length;i>0 && Tb1->Element[i]!=K;i--);
        return i;
    */
}
typedef struct LNode * List;
struct LNode{
    ElementType Element[MAXSIZE];
    int Length;
}
/* 二分查找 
假设n个数据元素的关键字满足有序(比如小到大)
并且是连续存放的数组,那么可以进行二分查找
时间复杂性是O(LogN)
*/
int BinarySearch(List Tbl,Element K)
{
    /* 在表Tbl中查找关键字为K的元素 */
    int left,right,mid,NotFound=-1;

    left=1; //初始左边界
    right=Tbl->Length; //初始右边界
    while(left<=right)
    {
        mid=(left+right)/2; //计算中间坐标元素
        if(K>Tbl->Element[mid]) right=mid-1; //调整右边界
        else if(K>Tbl->Element[mid]) left=mid+1; //调整左边界
        else return mid; //查找成功,返回数据元素的下标
    }

    return NotFound; //查找不成功,返回-1
}

【二分查找判定树】

查找树.png

【1】判定树上每一个节点需要查找的次数刚好为该节点所在的层数;
【2】查找成功时查找次数不会超过判定树的深度
【3】n个节点的判定树的深度为(取整)[Log2 N]+1
【4】平均成功查找次数ASL=(44+43+2*2+1)/11=3

相关文章

  • 数据结构与算法顺序查找和折半查找

    1.顺序查找又称线性查找,主要用于在线性表中进行查找。 一般线性表的顺序查找:从线性表的一端开始,逐个检查关键字满...

  • 查找之有序表查找(十)

    1.二分查找(折半查找) 它的前提是线性表中的记录必须是有序的,线性表必须采用顺序存储。折半查找的基本思想是:在有...

  • 查找

    查找 framework 1 顺序 查找 适用: 线性表 思路: 逐个比较 2 二分查找 适用: 有序 顺序表...

  • 数据结构与算法 13:查找

    目录 一、查找的定义二、线性表的查找2.1 、顺序查找2.2、二分查找2.3、分块查找三、树表查找3.1 、二叉排...

  • 二分查找

    1. 二分查找 在对线性表的操作中,经常需要查找某一个元素在线性表中的位置。此问题的输入是待查元素x和线性表L,输...

  • 数据结构课程 第十二周 查找

    查找基本概念 线性表的查找 顺序查找(线性查找) 折半查找(二分或对分查找) 表中元素是有序的!(仅限于顺序存储结...

  • 基本算法——二分查找算法

    二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采...

  • [算法学习]--二分查找

    定义:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须...

  • 2018-03-30 算法 :查找简介

    世界上没有最好的算法,只有最合适的算法 查找算法:静态查找,动态查找 静态查找(一般使用线性表)的分类: 顺序查找...

  • 二分查找

    二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺...

网友评论

      本文标题:线性表查找

      本文链接:https://www.haomeiwen.com/subject/jicflxtx.html