算法基础 上机实验 1 学 期: 2015 (秋)
Project 1: Sorting 实验1:排序 n 个元素,元素为随机生成的长为1..16的字符串,n的取值为:22,24,26,28,210,212; 算法:冒泡排序,堆排序,归并排序,快速排序, SHELL排序(5个增量,分别是:1,3,7,13,19)。 实验2:排序n个元素,元素为随机生成的1..65535的正整数,n的取值为:23,25,27,29,211,213; 算法:直接插入排序,快速排序,归并排序, 基数排序,计数排序。
实验要求: 1、输入输出格式: c)output: a)两个实验分别建立ex1和ex2文件夹,每个文件夹分别包含3个文件夹: input文件夹:存放输入数据 source文件夹:源程序 output文件夹:输出数据 b)input: 输入文件中每行一个随机数据,总行数大于等于213 顺序读取N个数据,进行排序 example:用插入排序对210个字符串进行排序,其随机数据的输入文件路径为 ex1/input/input_strings.txt,顺序读取前210个字符串进行排序。 c)output: 每种算法建立一个子文件夹,其输出结果数据导出到其对应子文件下面 result_N.txt:排序结果的数据(N为数据规模的指数),每个数据规模一个输出文件 time.txt:运行时间效率的数据,六个规模的时间结果都写到同个文件 example:用插入排序对210个字符串进行排序,其排序结果文件路径为 ex1/output/inser_sort/result_10.txt 算法基础--2012
2、性能分析的要求: a)用适当的方法,或工具记录排序算法在执行时所消耗的时间,与占用的存储空间; b)根据不同输入规模时记录的数据,画出算法在不同输入规模下的运行时间曲线图;比较你的曲线是否与课本中的算法渐进性能是否相同,若否,为什么,给出分析。 c)比较分析不同的排序算法的性能曲线, 根据你的图表分析各种排序算法在不同输入规模下哪个更占优势,与课本上介绍的算法渐进性能的相符吗?如果不相符,为什么? 算法基础--2012
3、图表格式: a)趋势图: 图一:不同算法对字符串排序时间趋势图 算法基础--2012
3、图表格式: 4、提交格式: b)表格: a)实验报告以压缩包(算法实验-project1-学号-姓名.rar )形式提供,包含 表一:不同算法对字符串排序时间表 4、提交格式: a)实验报告以压缩包(算法实验-project1-学号-姓名.rar )形式提供,包含 实验报告、源码、输入输出结果 3)压缩包发至助教邮箱,邮箱主题为“算法实验-project1-学号-姓名”,助教在收到邮件后会及时发送确认邮件。 单位(us) 2^4 2^6 2^8 2^10 2^12 2^14 2^16 2^18 2^20 Insert_sort 14.436 169.863 2533.51 35701.1 304859 4.64E+06 7.87E+07 1.35E+09 -- Shell_sort 29.8343 105.864 580.326 2591.74 23022 284910 4.35E+06 6.77E+07 1.10E+09 ubble_sort 10.1052 171.788 4186.91 36499.9 548513 8.63E+06 1.55E+08 2.31E+09 Heap_sort 19.2479 160.72 931.601 2367.5 11336.6 52894.8 357424 1.25E+06 5.91E+06 Quick_sort 12.03 61.1122 229.051 1361.31 5389.91 23558.5 163152 706071 5.37E+06 Merge_sort 102.014 635.663 2653.33 8076.92 35884.4 220200 728287 3.29E+06 算法基础--2012
5、注意事项: a)实验报告中要有必要的实验过程截图和图表; b)表格,图片,单位,横纵坐标; c)ex1,ex2目录结构严格按照输入输出格式的要求; d)代码中需要有必要的注释; e)实验杜绝抄袭他人代码或者实验结果,如发现代码高度相似或者实验报告雷同者算0分; f)实验报告模板另附。 算法基础--2012