网站大量收购独家精品文档,联系QQ:2885784924

C语言检索汇总.pptx

  1. 1、本文档共196页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构;揭安全;第9章 检索;检索(查找);计算机是如何帮用户 查找数据的?;9.1 检索的基本概念;静态检索表:检索的前后不会改变查找表的内容。;9.2 线性表的检索;9.2.1顺序检索;/*******************************************************************/ /* 线性表检索用的头文件 文件名:seqlist.h */ /*******************************************************************/ #include stdio.h #define maxsize 100 /*预定义最大的数据域空间*/ typedef int datatype; /*假设数据类型为整型*/ typedef struct { datatype data[maxsize]; /*此处假设数据元素只包含一个整型的关键字域*/ int len; /*线性表长度*/ } seqlist; /*预定义的顺序表类型*/;算法9.1给出了基于顺序查找表的顺序检索方法。 /* 顺序检索算法 文件名:s_search.c */ /* 函数名: seqSearch() */ #include seqlist.h /*--------顺序查找的非递归实现------*/ int seqsearch(seqlist l,datatype key) { int k=l.len-1; while (k=0 l.data[k]!=key ) k--; return(k); };linklist linkSearch(linklist head, datatype key) { linklist p=head-next; while (p p-data!=key) p=p-next; return p; };顺序检索;顺序检索;顺序检索;顺序查找效率分析;9.2.2二分法检索; 每比较一次,有哪些信誉好的足球投注网站区间缩小一半。如果有哪些信誉好的足球投注网站区间已缩小到一个对象,仍未找到想要有哪些信誉好的足球投注网站的对象,则有哪些信誉好的足球投注网站失败。;10;10;下面给出二分检索法的非递归与递归实现算法,算法中使用seqlist.h中定义的顺序查找表。 ;if (l.data[mid]==key) return mid; /*检索成功返回*/ if (l.data[mid]key) high=mid-1; /*继续在前半部分进行二分检索*/ else low=mid+1; /*继续在后半部分进行二分检索*/ } return -1;/* 当lowhigh时表示查找区间为空,检索失败*/ };binsearch2(l,key,mid+1,high);;有哪些信誉好的足球投注网站成功的情形 有哪些信誉好的足球投注网站不成功的情形;ASLbins= ;图书检索策略;9.2.3分块检索;(2)索引表 ???  抽取各块中的最大关键字及其起始位置构成一个索引表ID[l..b],即: ID[i](1≤i≤b)中存放第i块的最大关键字及该块在表R中的起始位置。由于表R是分块有序的,所以索引表是一个递增有序表。 ;图9.2 分块有序表的索引存储表示;2、分块查找的基本思想   (1)首先查找索引表   索引表是有序表,可采用二分查找或顺序查找,以确定待查的结点在哪一块。; 分块检索方法通过将查找缩小在某个块中从而提高了检索的效率,其查找的效率由两部分组成,一是为确定某一块对索引表的平均查找长度El,二是块内查找所需的平均查找长度Eb 。; 若以顺序检索来确定块,则分块查找成功时的平均查找长度为:; 若以二分检索来确定块,则分块检索查找成功时的平均查找长度为: ASL’ids=El+Eb ?log2(b+1)-1+(s+1)/2 ?log2(n/s+1)+s/2;/**************************************************************/ /* 分块查找算法 */ /* 文件名:i_search.c 函数名:indexseqsearch() */ /*

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档