社区
C语言
帖子详情
求分块查找的算法
hikozl
2004-10-04 08:06:27
恩。 。请回复在下面,谢谢。。
...全文
454
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 解题报告
数列分块入门9 题意概括 静态,区间
求
众数。 写在前面 还记得分块1就提到的关于块的大小有时要通过计算么??在这里就得到了体现! 正题 为了方便起见,我们设把数列分成K块~ 这道题很值得思考。 先离散化~ 然后记录位置~ 我们可以考虑,对于L ~ R之间的众数只有可能是以下三种情况: b[L]块中L之后的部分 b[R]块中R之前的部分 b[L] + 1块到b[R] - 1块的众数 第三条可以预...
算法
竞赛进阶指南---0x44 蒲公英(分块)
题面 题解(分块) 代码 #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> #include<vector> #include<cmath> using namespace std; typedef long long ll; const int N = 1e5 + 10; int n,
算法
|
分块查找
算法
|
分块查找
1. 简介
分块查找
也称为索引顺序表查找。
分块查找
就是将顺序表(主表)分成若干个子表,然后为每个子表建立一个索引表,利用索引在其中一个子表中查找。 两部分: 索引表:存储顺序表的每个子表的开始索引和最大值。 顺序表:主表所有数据存放的位置。 1.1. 条件 子表内可以是无序的,但是子表之前面的子表中每个元素必须小于后面子表中的每个元素。 1.2. 分块 纯个人的一些理解,欢迎一起沟通交流 1.2.1. 前言 我第一次看
分块查找
时也十分纠结应该怎么分块每个子表数据应该多长,什么
查找
算法
之
分块查找
查找
算法
之
分块查找
算法
查找——
分块查找
本文将讲述
分块查找
有关内容
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章