社区
C语言
帖子详情
求分块查找的算法
hikozl
2004-10-04 08:06:27
恩。 。请回复在下面,谢谢。。
...全文
446
4
打赏
收藏
求分块查找的算法
恩。 。请回复在下面,谢谢。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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.在块中找出关键字。
「分块系列」数列分块入门9 解题报告
本文介绍了一种使用分块技术解决静态区间
求
众数问题的方法。通过将数列离散化并分块,预处理块间众数,再结合二分查找,实现了高效的查询
算法
。
算法
竞赛进阶指南---0x44 蒲公英(分块)
本文详细介绍了如何使用分块
算法
解决在线
求
众数的问题。通过大段维护和局部朴素暴力统计,结合预处理和二维数组d来存储块间众数,以及利用vector记录每个数字出现的位置,实现了高效的查询。文章还讨论了分块数T的选取,以达到最优的时间复杂度。最后给出了完整的C++代码实现。
算法
|
分块查找
本文详细介绍了
分块查找
算法
,包括其原理、适用条件及如何进行数据分块。通过实例展示了
分块查找
在有序数组中的实现,并讨论了数据无序时如何通过哈希策略进行分块。此外,还探讨了分块思想在解决Redis服务器内存不足问题上的应用,以及处理不同长度子表的特殊情况。最后,提供了Go语言的代码实现和测试用例来验证
算法
的正确性。
查找
算法
之
分块查找
本文介绍了查找
算法
的基础知识,着重分析了
分块查找
法,包括其工作原理、时间复杂度与空间复杂度,以及适用场景。讨论了
分块查找
的优缺点,指出其在静态、有序且数据量大且频繁查找的场景中具有优势。,
C语言
70,037
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章