查找

顺序查找

#include <iostream> 
#define LIST_SIZE  20
#define  KeyType int 
#define  OtherType int 
#define  KeyType int 
typedef struct 
{
   KeyType key; 
   OtherType other-data; 
} RecordType; 
typedef struct 
{ 
   RecordType  r[LIST_SIZE+1];   
   int length;  
} RecordList; 

int SeqSearch (RecordList l,  KeyType k) //顺式结构查找 
{ 
     int i=l.length;  
     while (i>=1&&l.r[i].key!=k)  i--;  
     if (i>=1) return(i)
     else return (0); 
}

int SeqSearch (RecordList l,  KeyType k) //顺式结构查找  优化 
{      
   	L.r[0].key=k;   //设置监视哨 
   	int i=L.length;  
    while (L.r[i].key!=k)   i--;  
    return(i); 
} //性能分析 ASL= (n+1)/2 ;列表长度为n 


int BinSrch (SqList L,   KeyType k) //二分查找
{      low=1 ;    high=L.length;  
       while  ( low<=high)
      {      mid=(low+high) / 2;  
              if (k==L.r[mid].key)  
                   return(mid); 
              else  if (k<L.r[mid]. key)   
                   high=mid-1; 
              else  
                   low=mid+1; 
       } 
       return 0; 
}  

二分查找,判定树

数字1-11的判定树在这里插入图片描述
二叉排序树:
例:已知长度为12的表:(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)。

1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成后的二叉排序树并求其等概率的情况下查找成功的平均查找长度。

2)若对表中元素先进行排序构成有序表,求其等概率的情况下对此有序表进行折半查找成功的平均查找长度。 在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值