当前位置:首页 > 数据结构课程设计报告(排序算法比较)
数据结构课程设计报告
学院:计算机科学与工程 专业:计算机科学与技术 班级:09级班 学号: 姓名: 指导老师:
时间: 2010年12月
一、课程设计题目: 1、哈夫曼编码的实现 2、城市辖区地铁线路设计 3、综合排序算法的比较 二、小组成员: 三、题目要求:
1.哈夫曼编码的实现
(1)打开若干篇英文文章,统计该文章中每个字符出现的次数,进一步统一各字符出现的概率。
(2)针对上述统计结果,对各字符实现哈夫曼编码 (3)对任意文章,用哈夫曼编码对其进行编码 (4)对任意文章,对收到的电文进行解码
2.某城市要在其各个辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要合理安排地铁的建设路线。
(1)从包含各辖区的地图文件中读取辖区的名称和各辖区的直接距离
(2)根据上述读入的信息,给出一种铺设地铁线路的解决方案。使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。
(3)输出应该建设的地铁路线及所需要建设的总里程信息。 3.综合排序算法的比较
各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概的执行时间。试通过随机的数据比较各算法的关键字比较次数和关键字移动的次数。
(1)对以下各种常用的内部排序算法进行比较:
直接插入排序,折半插入排序,二路归并排序,希尔排序,冒泡排序,快速排序,简单选择排序,堆排序,归并排序,基数排序。
(2)待排序的表长不少于100,要求采用随机数。
(3)至少要用5组不同的输入数据做比较:比较的次数为有关键字参加的比较次数和关键字移动的次数
(4)改变数据量的大小,观察统计数据的变化情况。
(5)对试验统计数据进行分析。对各类排序算法进行综合评价。 四、项目安排:
1、小组内分工合作
分工:负责哈夫曼编码的实现,负责城市辖区地铁线路设计,负责综合排序算法的比较。
合作:组内,组外进行交流,组长帮助解决组员的在项目过程中的困难,并控制进度。
五、完成自己的任务:
任务:综合排序算法比较 1.思想实现流程图
折 直接半 排排序 序 2.代码的实现 #include
#define MAXSIZE 1000 int L[MAXSIZE+1];
int num=100; 开始 初始数据 希尔排序冒泡排序快速排序选择排序…… 统计排序效率 排序结果 排序优劣
int
count1=0,count2=0,count3=0,count4=0,count5=0,count6=0,count7=0,count8=0,count9=0,count10=0;
int creatdata() 数 { FILE *f; int row; row=num/10; f = fopen(\ 入产生的随机数 if(f) { for(int i=0; i<10; i++) { for(int j=0; j void zjpx(int L[MAXSIZE]) 排序 { creatdata(); int i,j; for(i=2;i<=num;i++) 二个开始插入 { if(L[i]<=L[i-1]) { L[0]=L[i]; 哨兵 并记录要插入的值 L[i]=L[i-1]; //产生随机 //创建并写 //控制列 //调用rand()函数 //直接插入 // 从第 //设置
共分享92篇相关文档