- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:C语言课程设计
课程设计题目:排序方法比较程序的设计与实现3日
目 录
第1章 概要设计 1
1.1题目的内容与要求 1
1.2总体结构 1
第2章 详细设计 2
2.1主模块 2
2.2显示模块 3
2.3分词模块 3
2.4替换模块 3
第3章 调试分析 4
第4章 使用说明与执行结果 5
参考文献 7
附 录(程序清单) 8
第1章 概要设计
1.1题目的内容与要求
课程设计的内容是设计一个比较不同排序方法数据交换次数与比较次数的程序生成的数据个数,相应数量的随机数排序法随机数组。比较数据的交换次数与比较次数结果。结果包括该排序法的交换次数比较次数及使用时间模块(的随机数个数。然后选项供用户进行选择选择的排序算法。随机数进行排序。
第2章 详细设计
2.1主模块
控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能,流程如图2.1所示。
图2.1 主模块流程图
注释:
1、输入生成随机数是胡良choose值,判断,进行各项操作。
2.2显示模块
输入生成随机数数量后相应功能界面如
图2.2 显示模块流程图
注释:
定义变量random_number
输入随机数数量后2.3排序模块
图2.3 排序模块流程图
注释:
进入功能菜单后输入相应数字
2根据数字选择排序法进行排序并记录比较与交换次数
3章 调试分析
问题1:生成随机数时生成的随机数生成的随机数相同
:分析这是因为种子默认为的问题。利用.h头文件中的srand函数随机数种子达到生成不同随机数
:少量数据计时为ms
解决方法:经过分析这是因为少量数据排序时与比较次数过少导致运算速度过快。时间ms导致。利用windowsh中的频率相关函数实现微秒及以上为单位的高精度计时
:程序的排序法比较种排序法
解决方法:这是因为后的数组并为原来未排序状态第二个排序法运行时无需排序就得到了正确的顺序 为四种排序法建立四个存放数据的数组。防止排序法排序相同数组而引发的
问题4:使用快速排序法时,时间经常十分短暂
解决方法:因为函数内涉及到递归,导致频繁的重置。最后将快速排序法变为无返回值类型。并且主函数调用之前和调用之后进行计时。4章 使用说明与执行结果
此时输入随机数的数量若输入了范围之外的数据显示数据错误并要求重新输入
体现不同排序法复杂度差距输入程序随机生成数据
正确的数据显示功能菜单。选择不同的序号实现不同排序法的交换次数与比较次数转换
首先选择 输出随机数
数字。右对齐规范化输出 后sleep4000ms后继续输出
依次输入四种排序法的
每一次输出完数据后都会暂停s后输出主菜单
序号比较(选择顺序随意。进行前可以不先运行功能独立)
程序会规范化输出四种排序法的比较次数交换次数与使用时间()输出后要求重新数量,进行随机数的重新生成
直接退出程序
以下是以随机数量与随机数据数量进行的四种排序法的比较结果
Brian W.Kernighan/Dennis M.Ritchie C程序设计经典工业出版社杨丽锐程序开发范例经典vor Horton C语言入门经典第五版
[4]戴艳 零基础学算法dash 数据结构与算法分析C语言描述[M] 机械工业出版社 2014Windows 各种计时函数总结 MoreWindowsS
/morewindows/article/details/6854764附 录(程序清单)
#includestdio.h
#includestdlib.h
#includetime.h //生成随机数时所用随机数种子函数以及时间函数
#includewindows.h //高精度计时调用winAPI
#define random(x) (rand()%x)
LARGE_INTEGER nFreq;
LARGE_INTEGER nBeginTime;
LARGE_INTEGER nEndTime;
int main()
{
/*函数声明部分*/
void random_number(int a[],int len); //随机数生成函数
void print();
void print2();//功能选择界面
void print_answer(int a, int b, double time);
double select_sort(int a[], int count[], int len);
double bubble_sort(int a[], int count[], int n);
void quick_sort(int a[], int count[], int lef
文档评论(0)