数据库实验4数据库操作的实现算法B树索引查找.pdf

数据库实验4数据库操作的实现算法B树索引查找.pdf

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四 数据库操作的实现算法 1、实验目的:掌握B树索引查找算法,多路归并排序算法,并用高级 语言实现 2 、实验内容: 选择熟悉的高级语言设计和实现程序完成下列功能: 1) 随机生成具有1,000,000条记录的文本文件,每条记录的长度为128 字节,其中固定包含一个整型属性A ,属性A 的值随机生成。其他 属性可以自己定义。 2 ) 针对属性A ,用高级语言实现两趟多路归并排序算法。要求在内存 分配8M空间用于外部归并排序 3 ) 以属性A为键值,实现B树索引。完成索引的插入,删除和查找。 3 、实验报告 截屏给出实验结果 给出算法流程图 由于共有1000000个元组,每个元组128B ,因此总大小为128M ,又内存 限制为8M ,则至少要分成128M/8M 16组。为了尽可能的减少I/O次数, 因此采用16路归并的方法;为了减少归并的时间,采用败者树,在 O(lgn) 的时间复杂度内选出最小的A属性元组,这种方法从划分到归 并,读入两次,写出两次,最少的I/O次数是4*1000000. 附上程序代码 1、生成1000000个128字节的元组代码: #include iostream #include fstream #include ctime #include cstdlib using namespace std; const int N 1000000; string RandomChineseCharacters() { //srand( (unsigned)time(NULL)); int high 0xd7 - 0xc1;// 16-55区汉字 int low 0xfe - 0xa1; int high_zn ; int low_zn; char name[3]; name[2] \0; string s; for(int i 0; i 60; i++) { high_zn rand()%high + 0xc1; low_zn rand()%low + 0xa1; name[0] high_zn; name[1] low_zn; s.append(name); } return s; } int main() { ofstream ofp (example2.txt); if (!ofp.is_open()) { coutcant open file!endl; return 0; } srand( (unsigned)time(NULL)); int t 1 0,t2 0;//4+ string name; for(int i 1;i N;i++) { t 1 rand(); t2 i; name RandomChineseCharacters(); //coutname sizeof(t 1)sizeof(t2)name.length()endl; ofpt 1 t2 nameendl; } return 0; } 2 、16组快速排序和16路归并排序的代码 // Extenal_Merge_Sort.cpp : 定义控制台应用程序的入口点。 // #include stdafx.h #include iostream #include fstream #include ctime #include cstdlib #include string.h #include assert.h using namespace std; typedef struct Data { int data;

文档评论(0)

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

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

1亿VIP精品文档

相关文档