课程设计说明书
课程名称:
数据结构和算法
设计题目:
多种排序
院系:计算机科学与信息工程学院
学生姓名:
学号:
专业班级:
计科嵌入式(121)
指导教师:
年月日
f设计题目学生姓名
设计要求:
课程设计任务书
所在院系
表达式计算程序设计
计科
专业、年级、班12计科(嵌入式)
1采用如下七种方法实现上述问题求解:插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序。
2统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。并将数据序列和不同的查找算法的性能结果记录入txt文件。
学生应完成的工作:
1利用随机函数产生N个随机整数(10000以上)。2对这些数字进行排序。3采用插入、希尔、起泡、快速、选择、归并、堆排序方法解决问题。4对不同的排序算法进行性能比较并记录。
参考文献阅读:
1《数据结构C语言版》严蔚敏清华大学出版社2《C语言程序设计》丁峻岭中国铁道出版社3《C程序设计》谭浩强清华大学出版社
工作计划:
任务下达日期:任务完成日期:
年月日年月日
指导教师(签名):
1
学生(签名):
f多种排序
摘要:
排序是算法中最基础的问题之一,经典的排序算法是前人不断总结得到的,基于比较的方法是比较直观的方式,主要存在插入法排序、堆排序、希尔排序、归并排序、快速排序,每一种排序算法都有自己的优缺点,比如插入法排序适用于那些长度短的排序,要是长的话,有些爱莫能助啦,堆排序主要是依据了二叉堆的特性,但是创建堆的过程也是一个复杂的问题,希尔排序的过程是一个不断精确的过程,但是目前也只是一个经验方式。归并排序是一个递归的问题,采用分治的思想实现,但是这种算法需要额外的存储空间,快速排序虽然是实践中比较常用的算法,但是对于有序的数组采用快速排序就是灾难。比较型算法的时间复杂度最优也只能到达ONlogN。
关键词:
归并排序插入排序
快排排序
选择排序
冒泡排序
堆排序希尔排序
内部排序
2
f目录
1设计背景311问题描述412问题分析4
2设计方案421算法设计r