Skip to content

b树nuaa数据结构课程大作业实现之一。ProdueData模块由数组模拟实现产生正确的输入输出文件作为b树的测试数据。Display模块则用于展示b树的形态,这个模块的实现也方便了调试寻找错误并修改。

License

Notifications You must be signed in to change notification settings

floatyun/B_Tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

B_Tree

b树nuaa数据结构课程(大二上)大作业实现之一.
特别说明:由于不了解硬盘的底层操作之类的接口,所以实现的b树实际上是存储于内存中的而非磁盘上。
不过原理是类似的,应该很容易修改。

procuce_data.exe

produce_data.exe用于随机生成检测b树正确性的测试数据。需要人从屏幕输入生成的命令操作总条数。
input.txt是给B_tree.exe的输入数据。output.txt是通过直接使用普通的数组用最简单暴力的方法进行插入、删除、查找等等操作获取正确的结果。

B_tree.exe

B_tree.exe如果无参数运行,由人输入各种操作命令。
B_tree.exe的第一个参数指定输入文件(即不在通过标准输入操作命令)。
B_tree.exe的第二个参数指定输出文件名。如果缺省,则默认输出到out.txt
其运行时会显示可以接受的命令格式。

辅助脚本

compare.py是用于比较output.txt和out.txt的异同的一个简单脚本。
run.cmd可以直接调用以上东西进行测试。

编译环境

使用vs2017进行编译

运行

cmd中运行run.cmd脚本即可

run.cmd

并根据提示输入一个你需要测试的操作命令的数量,例如100即可。
之后脚本会自动生成100条操作命令即相应结果,并自动调用B_tree.exe去操作。b_tree.exe将会报出处理时间。
之后compare.py将会比较output.txt(暴力)和out.txt。如果有不一致的地方将会报错。 百万万次操作的测试结果是约9s完成。
五百万次操作的测试大概是17秒。 感觉有些慢。 百万规模
五百万规模
我认为主要的性能瓶颈应该是在于后面的将结果输出到文件的IO操作。

About

b树nuaa数据结构课程大作业实现之一。ProdueData模块由数组模拟实现产生正确的输入输出文件作为b树的测试数据。Display模块则用于展示b树的形态,这个模块的实现也方便了调试寻找错误并修改。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published