C语言分块查找算法-索引顺序查找算法.docx

C语言分块查找算法-索引顺序查找算法.docx

ID:60719274

大小:14.83 KB

页数:3页

时间:2020-12-10

C语言分块查找算法-索引顺序查找算法.docx_第1页
C语言分块查找算法-索引顺序查找算法.docx_第2页
C语言分块查找算法-索引顺序查找算法.docx_第3页
资源描述:

《C语言分块查找算法-索引顺序查找算法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言分块查找算法,索引顺序查找算法例如,采用分块查找法在有序表11、12、18、28、39、56、69、89、96、122、135、146、156、256、298中查找关键字为96的元素。査找特定关键字元素个数为15,要求用户输入有序表各元素,程序输出査找成功与否,若成功,还显示元素在有序表中的位罝。实现过程:(1)定义结构体index,用于存储块的结构,并定义该结构体数组 index_table。(2)自定义函数block_search(),实现分块查找。(3)main()函数作为程序的入口函数。程序代码如下:1.#include2.structindex//定义

2、块的结构3.{4.intkey;//块的关键字5.intstart;//块的起始值6.intend;//块的结束值7.}index_table[4];//定义结构体数组8.9.intblock_search(intkey,inta[])//自定义实现分块查找10.{1.inti,j;2.i=1;3.while(i<=3&&key>index_table[i].key)//确定在哪个块中4.i++;5.if(i>3)//大于分得的块数,则返回06.return0;7.j=index_table[i].start;//j等于块范围的起始值8.while(j<=index_table[i].

3、end&&a[j]!=key)//在确定的块内进行顺序查找9.j++;10.if(j>index_table[i].end)//如果大于块范围的结束值,则说明没有要査找的数,j置011.j=0;12.returnj;13.}14.15.intmain()16.{17.inti,j=0,k,key,a[16];18.printf("请输入15个数:");19.for(i=1;i<16;i++)20.scanf("%d",&a[i]);//输入由小到大的15个数21.for(i=1;i<=3;i++)22.{23.index_table[i].start=j+1;//确定每个块范围的起

4、始值24.j=j+1;25.index_table[i].end=j+4;//确定每个块范围的结束值26.j=j+4;27.index_table[i].key=a[j];//确定每个块范围中元素的最大值28.}29.printf("请输入你想査找的元素:");30.scanf("%d",&key);//输入要查询的数值31.k=block_search(key,a);//调用函数进行杳找32.if(k!=0)33.printf("查找成功,其位置是:%d",k);//如果找到该数,则输出其位置34.else35.printf("查找失败!");//若未找到,则输出提示信息1.

5、return0;2.}运行结果:请输入15个数:111218283956698996122135146156256298请输入你想査找的元素:96查找成功,其位置是:9

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。