1、 数据结构数据结构课程设计报告课程设计报告 题目:题目: 各种内排序性能比较各种内排序性能比较 学生姓名:学生姓名: 学学 号:号: 班班 级:级: 指导教师:指导教师: 2011-6-13 1 目目 录录 1、 需求分析说明需求分析说明2 1.11.1 所需完成的任务及要求所需完成的任务及要求 1.21.2 程序实现的功能程序实现的功能 2、 总体设计总体设计3 2 2. .1 1 总体设计说明总体设计说明 2.22.2 总体流程图总体流程图 2.32.3 各主程序详细流程图各主程序详细流程图 3、 详细设计详细设计7 3.13.1 使用的算法思想使用的算法思想 3.23.2 各个算法的效率
2、简析各个算法的效率简析 4、 实现部分实现部分8 4.14.1 程序程序算法的代码算法的代码 5、 程序测试程序测试. .15 5.15.1 程序运行的主界面程序运行的主界面 5.2 5.2 各算法运行界面各算法运行界面 6、 总结总结18 2 1、 需求分析说明需求分析说明 排序是数据处理中经常遇到的一种重要操作。 然而排序的 算法有很多,各有其优缺点和使用场合。本程序的设计的主要 目的是通过比较各种内部排序(包括:插入法排序、起泡法、 选择法、快速法、合并法排序)的时间复杂度,即元素比较次 数和移动次数,来分析各种算法优缺点和适合排列何种序列。 达到在实际应用中选择合适的方法消耗最短的时间
3、完成排序。 1.1 所需完成的任务及要求所需完成的任务及要求 任务: 1) 用程序实现插入法排序、起泡法、选择法、快速法、合 并法排序; 2) 输入的数据形式为任何一个正整数,大小不限。 要求:排序后的数组是从小到大的; 1.2 程序实现的功能程序实现的功能 (1) 使用随机函数实现数组初始化,生成多组元素个数不 同的数组; (2) 用列表打印出每种排序下的各趟排序结果; (3) 打印使用各种排序算法以后元素比较和交换的次数; (4) 设计合理的打印列表来打印。 3 2、 总体设计总体设计(从总体上说明该题目的框架, 用文字和图表说明) 2.1 2.1 总体设计说明总体设计说明 采用插入气泡,
4、选择,快速,合并的方法实现各种排序算法,并且在 实现过程中插入适当变量来实现计数元素交换次数和比较次数的统计。 对 于每一趟比较之后元素顺序以及最后的结果使用单独的函数来实现, 形成 单独的一个模块; 2.22.2 总体流程图总体流程图 界面 插 入 法 起 泡 法 选 择 法 快 速 法 合 并 法 退 出 2.3 各主程序详细流程图各主程序详细流程图 主函数流程图: Suiji();menu(); 开始 输入 select Select exit( 0); 0 insertsor t(R,k); bubbleso rt(R1,k); selectsor t(R2,k); quicksort(R3 ,0,k-1,k); mergeso rt(R4,k); 1 2 3 4 0 5 结束 4 插入法函数流程图 假 真 真 假 开 始 i=i tempi)/当这种情况下一定是因为 rj中存在比 temp 小的值 ri=rj