社区
C语言
帖子详情
求分块查找的算法
hikozl
2004-10-04 08:06:27
恩。 。请回复在下面,谢谢。。
...全文
413
4
打赏
收藏
求分块查找的算法
恩。 。请回复在下面,谢谢。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
挺拔的劲松
2004-10-09
打赏
举报
回复
下面是分块查找的程序,表table的长度为16,分为4块。程序先建立索引表index,然后对给出的关键码查找索引以确定在哪一块,接着在块内进行查找。
#include<stdio.h>
#define n 16
#define m 4
typedef struct{int key;
int ip;
}indexelement;
typedef struct{int key;
float info;
}element;
typedef indexelement indextype[m];
typedef element sqlist[n];
int sequentialsearch(sqlist r,indextype index,int block,int k)
{
int i;
i=index[block].ip;
while(k!=r[i].key&&k<=index[block].key) i++;
if(k!=r[i].key) i=0;
return(i);
}
main()
{
int i,j,k;
sqlist table;
indextype index;
printf("input %d element's key\n",n);
for(i=0;i<n;i++)
{
scanf("%d",&j);
table[i].key=j;
}
printf("input %d element's ip to form an index'ip\n",m);
for(i=0;i<=m-1;i++)
{
scanf("%d",&j);
if(j<0||j>n)
{
printf("ERRORS!");
exit(0);
}
index[i].ip=j;
}
printf("input %d element's key to form the index'key\n",m);
for(i=0;i<=m-1;i++)
{
scanf("%d",&j);
index[i].key=j;
}
printf("search which key?\n");
scanf("%d",&k);
i=0;
while(k>index[i].key&&i<m-1) i++;
if(i>=m) printf("not fount\n");
else
{
j=sequentialsearch(table,index,i,k);
if(j==0) printf("not fount\n");
else printf("loc=%d\n",j);
}
}
hikozl
2004-10-06
打赏
举报
回复
恩。。拜托各位了。。帮帮忙。。
hikozl
2004-10-05
打赏
举报
回复
晕啊。。具体的解释我知道,但就是写不出来这算法。把算法帖在下面好吗?
hcj2002
2004-10-04
打赏
举报
回复
分块查找就是把表分成若干块,每一个快中的关键字不一定是有序的,但块之间是有序的(后面的关键字均大于前面的);此外还建立一个索引表,索引表按关键字有序。
因此分块查找分两步:1.在索引表中找相关的快。
2.在块中找出关键字。
分块查找
算法
实现
分块查找
,是对顺序查找的一种改进。 将查找表分成若干子表(块),并对子表建立索引表。 索引表包括:关键字段、起始位置和块表长度。
【数据结构与
算法
】
分块查找
算法
实现:有序分块数据快速检索方法研究
内容概要:本文档介绍了
分块查找
的基本思想及其具体实现方法。
分块查找
的核心在于将一个数据集划分为若干个块,块内部元素可以无序排列,但块间元素必须保持有序(对于非递减序列,后一块的所有元素均大于前一块)。文档通过C#语言实现了
分块查找
算法
,定义了IndexBlock结构体用于存储每个块的最大值、起始位置和结束位置,并展示了如何初始化分块以及执行具体的查找操作。最后通过一个简单的例子演示了
分块查找
的应用,当查找成功时返回元素在数组中的索引,否则返回-1表示查找失败。; 适合人群:计算机科学专业学生或有一定编程基础的技术人员。; 使用场景及目标:①理解
分块查找
算法
的工作原理;②掌握利用C#实现
分块查找
的具体步骤;③学习如何根据实际需
求
选择合适的查找
算法
以提高效率。; 其他说明:此文档不仅提供了理论性的概念解释,还结合了实际代码示例帮助读者更好地理解
分块查找
算法
,建议读者在阅读过程中尝试运行代码并理解每一部分的功能。
易语言
分块查找
源码
易语言
分块查找
源码
线性表
分块查找
算法
软件工程作业答案
本
算法
可以根据自行创建快的数目,每块的最小关键字,每块的内的数据,然后准确找出所查找元素的位置
分块
算法
文档
对于数据存储,重复查询的
算法
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章