算法基础上机实验.ppt

算法基础上机实验.ppt

School of CST 算法基础 上机实验 学 期: 2013 (秋) Project 2: 红黑树 1) 实现红黑树的各个基本操作; 2)随机生成n个整数(要求两两不同),整数的取值为1..65535,n的取值为:24,26,28,210。将生成的这四组整数存入一个文件,每组整数之间用 “,” 隔开,每组的第一个数为 n(这样每组实际有 n+1个数),整数之间用空格分隔; 3)打开文件,依次读入这几组整数,将这些整数作为关键字,将对应的结点依次插入一棵初始为空的红黑树(每组整数对应一棵红黑树)。 4)从这四组整数中各随机选取3个整数,从对应的红黑树中删除这些整数对应的结点。计算每组数据中平均删除一个结点所用的时间。画出曲线。 5)将每棵红黑树中刚刚删除的3个结点再插入树中, 计算每组数据中平均插入一个结点所用的时间,画出曲线。 Project 2: 实验检查要求 实验检查要求: 正确性检查:程序需按顺序读取数组中的key,向树种增加结点, 然后,根据要求删除其中的某结点,自行设计一个较方便的函数,使得在检查时能够显示树的结构,以便能够观察到结点插入、删除前后树的结构变化(包括结点颜色) 运行时间检查:显示不同规模树时的平均查找时间,平均删除时间,平均插入时间。注意,删除时间包括根据结点key值从树根找到该节点的时间(即查找时间)和删除该节点的时间。 验收方式:实验数据随机给出,演示结果。 Project 2: 注意 注意: 查找删除,是从树中随机选出3个结点,而非随机选出3个关键字,因为选出的关键字,可能在树中不存在,随机选取3个结点的方法,请自行设计 Project 2: 上机时间 上机时间: 11月15日(周五)晚上6:30-9:30 地点:电三楼517 Project 2: 时间测试 linux测试时间范例:(us) #include sys/time.h gettimeofday(start,NULL); sort(A,n); gettimeofday(end,NULL); cost=(end.tv_sec-start.tv_sec)*1000*1000+end.tv_usec-start.tv_usec; windows测试时间范例:(us) #includestdio.h #include windows.h LARGE_INTEGER lv,lv1,lv2; double totaltime,secondsPerTick; QueryPerformanceFrequency( lv ); secondsPerTick = 1000000.0 / lv.QuadPart; QueryPerformanceCounter( lv1 ); ?sort(A,n); QueryPerformanceCounter( lv2 );???? totaltime = secondsPerTick * (lv2.QuadPart-lv1.QuadPart); Project 2: 实验报告 实验报告要求: 文件要求:实验结果截图,源代码文件(不包括产生的debug文件夹等其他无关文件),实验报告,压缩成学号_姓名实验二.rar或.zip文件,发送至任一助教,邮件主题“算法基础实验二”,若发送后一日内无回复,再发送至其他两位助教。 实验报告命名规则请严格按照要求,以方便整理。 实验报告截止时间:11月24日晚24:00 * * * * School of CST * * * * *

文档评论(0)

1亿VIP精品文档

相关文档