b树nuaa数据结构课程(大二上)大作业实现之一.
特别说明:由于不了解硬盘的底层操作之类的接口,所以实现的b树实际上是存储于内存中的而非磁盘上。
不过原理是类似的,应该很容易修改。
produce_data.exe用于随机生成检测b树正确性的测试数据。需要人从屏幕输入生成的命令操作总条数。
input.txt是给B_tree.exe的输入数据。output.txt是通过直接使用普通的数组用最简单暴力的方法进行插入、删除、查找等等操作获取正确的结果。
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操作。