数据结构课程设计各种排序

上传人:精****档 文档编号:43521003 上传时间:2018-06-06 格式:DOC 页数:11 大小:224.50KB
返回 下载 相关 举报
数据结构课程设计各种排序_第1页
第1页 / 共11页
数据结构课程设计各种排序_第2页
第2页 / 共11页
数据结构课程设计各种排序_第3页
第3页 / 共11页
数据结构课程设计各种排序_第4页
第4页 / 共11页
数据结构课程设计各种排序_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数据结构课程设计各种排序》由会员分享,可在线阅读,更多相关《数据结构课程设计各种排序(11页珍藏版)》请在金锄头文库上搜索。

1、数据结构课程设计数据结构课程设计课程设计题目:各种排序课程设计题目:各种排序姓名: 学号:2011112212班级: 1122 软件工程软件工程 组长:李俊超:李俊超指导老师:解德祥:解德祥计算机与信息学院一、一、设计题目设计题目 题目:题目:各种排序 任务任务:实现各种排序并分别时行分析 要求要求:用随机数生成 100 个整数存入文本文件中,并对这些数进行多种方法进行排序。 至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡 排序、快速排序、选择排序、堆排序、归并排序)并将结果存入另外的文本文件中。二. 运行环境(软、硬件环境)运行环境(软、硬件环境) 操作系统

2、Windows7 运行环境 Visual C+ 6.0三、三、算法设计的思想算法设计的思想 大架构采用模块化编程的思想,将每个不同的功能分别写成不同的子程序,分别进行 封装构成各个小的模块,最后将各个模块组合起来。在每个子程序的编写过程中特事 特办面对不同的预想功能采取不同的数据结构不同的算法实现。 总体算法思想为按 功能分块,依照预想功能实现顺序拼装。具体思想请见流程图。四、四、算法的流程图算法的流程图产生 100 个随机数把产生的随机数存入一个文本文档进入菜单选项,可选择四种排序方式中的一种冒泡排序插入排序快速排序选择排序显示排序后的结果将排序后的结果存入另一个文本文档中五、五、算法设计分

3、析算法设计分析 程序总体采用模块化设计,程序间通过传参和调用进行有机组合。这样的总体布局将 将各个功能隔离开来,每个模块负责每个模块的功能,使得程序的布局简单明了。且 子程序只有在被调用时才会运行大大节约系统资源减少了运算时间。同时由于功能的 隔离使 得程序的扩展性大大提高,无论程序将要任何改动时,都会方便很多。具体实 现如图:工程一共包括 9 个文件,一个头文件“sort.h”,其中包括了对程序的预处理命令和程序 将用到的所有函数的声明,其他 8 个文件分别是 mian 函数所在文件“sort.c”,显示数 据函数实现的文件“Display.c”,文件保存函数实现的文件“save.c”,菜单

4、函数实现的 文件“Menu.c”,冒泡排序实现的文件“bubblesort.c”, 插入排序实现的文件“inssort.c”, 快速排序实现的文件“qksort.c”, 选择排序实现的文件“selectsort.c”. 六、六、源代码源代码*【sort.h】 *#include #include #include #define TRUE 1 #define FALSE 0long rdnum100; long sortednum100; FILE *fp1,*fp2; char fname120;char fname220;void Save(FILE *fp,char fname,int

5、data); void bubblesort(); void inssort(); int qkpass(int r,int left,int right); void qksort(int r,int low, int high ); void selectsort(); void Display(long data); void Menu();*【sort.c】 *#include “sort.h“void main() long i,rd;printf(“系统将如下产生系统将如下产生 100 个随机数个随机数nn“); srand( (unsigned)time( NULL ) ); f

6、or( i = 0; i =1 sortednumj= sortednumj+1; sortednumj+1= x;change=TRUE; *【inssort.c】 *#include “sort.h“void inssort() int i,j,k;for (i=1; i=x ) high-; if ( low high ) rlow= rhigh;low+; while (lowhigh if ( lowhigh ) rhigh= rlow; high-; rlow=x; return low; void qksort(int r,int low, int high ) int pos;

7、 if(lowhigh) pos=qkpass(r, low, high); qksort(r, low, pos-1); qksort(r, pos+1, high); *【selectsort.c】 *#include “sort.h“void selectsort() int i,j,k; int x; for ( i=0 ; i100; i+) k=i; for ( j=i+1 ; j100 ; +j) if (sortednumj sortednumk ) k=j; if ( k!=i) x= sortednumi; sortednumi= sortednumk; sortednum

8、k=x; 七、七、运行结果分析运行结果分析系统产生系统产生 100 个随机数个随机数将产生的将产生的 100 个随机数存入一个自己选择的文本文档中,如果该个随机数存入一个自己选择的文本文档中,如果该 路径不存在将在该路径新建一个该文本文档,我选择的是路径不存在将在该路径新建一个该文本文档,我选择的是 d:1.txt选择一种排序方式对产生的随机数进行排序,我选择的是选择一种排序方式对产生的随机数进行排序,我选择的是 插入排序,也可以选择其他排序,结果是一样的,只是算法不同插入排序,也可以选择其他排序,结果是一样的,只是算法不同显示排序后的结果显示排序后的结果将排序后的结果存入另一个自己选择的文本

9、文档中,如果该将排序后的结果存入另一个自己选择的文本文档中,如果该 路径不存在将在该路径新建一个该文本文档,我选择的是路径不存在将在该路径新建一个该文本文档,我选择的是 d:2.txt可以看到可以看到 D 盘确实多了两个文本文档(盘确实多了两个文本文档(1.txt 和和 2.txt) ,里面一个存放,里面一个存放 的是产生的的是产生的 100 个随机数,另一个是排序后的结果,可见程序是成功的个随机数,另一个是排序后的结果,可见程序是成功的八、八、我的任务及课设心得我的任务及课设心得 我的任务:我的任务:整个程序中我负责的部分是: 1. 产生随机数功能的编写 2. 文件保存功能的编写 3. 菜单

10、功能的编写 4. 快速排序“qksort.c”代码的编写 5. 把所有人的代码串联起来成为一个完整的程序课设心得:课设心得: 整个程序前前后后整整用了一个星期, 每天只要有空闲时间就在翻书本,画流 程图写代码,反反复复一点一点。一个星期的编写让我进步不少,心得也不少,但是 说实话让我认识最深的是四点,刻骨铭心:1. 对于编程来说看书很重要,但实实在在的动手去编才是王道!2. 任何程序想要写起来不被自己搞晕,就一定要画流程图,省时省事!3. 编程一定养成良好的编程习惯,无论命名还是结构!4. 任何程序算法是灵魂,程序的好坏很大部分取决于算法,只是一组数的排序差别 就如此之大,跟别说一个比排序复杂多倍的排序!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号