关于排序算法的C++课程设计
- 格式:doc
- 大小:62.00 KB
- 文档页数:5
河北工业大学计算机软件技术基础(VC)课程设计报告
学院电气学院班级自动化082姓名苟斌学号080989成绩 __ ____一、题目:
排序算法应用二(直接法、插入法、shell排序)(10)
二、设计思路
1、总体设计:
1)要求:将一组无序数列分别通过直接法、插入法、shell排序按一定规律进行排序,并输出排序次数。
2)系统总体结构:
本设计有五个函数和一个头文件组成,五个函数分别为:
主函数(主要负责循环方式选择,和定义)。
赋值函数(对数组进行赋值)。
插入循环函数(完成插入的循环函数制定)。
直接循环循环(完成直接的循环函数制定)。
Shell循环函数(完成Shell的循环函数制定)。
头文件将函数说明与主函数组和。
2、各功能模块的设计:首先设计主函数,再分别设计直接法、插入法、shell排序及赋值函数作为分函数,最后通过头文件将它们与主函数结合,使输入的一组无序数列分别通过直接法、插入法、shell排序按一定规律进行排序,并输出排序次数。从而完成数列的排序和排序方法的比较。
3、设计中的主要困难及解决方案:
困难一:数列的赋值?
解决方法:用函数实现。
困难二:如何进行排序比较?
解决方法:分别通过直接法、插入法、shell排序进行排序,使其按一定规律,并输出次数。
4、你所设计的程序最终完成的功能
1)将一组无序数列通过排序使其成为有序数列。
2)准备的测试数据:2 6 1 8 4 9 5
运行结果:
三、程序清单
本程序包含main.cpp、charu.cpp、zhijie.cpp、shell.cpp、fuzhi.cpp、和paixu.h六个文件
1、main.cpp文件清单
#include
#include "paixu.h"
void main ()
{
int a[100],b[100],n,o,p,q,i;
char c;
for(int flag=1;flag!=0;)
{
cout<<"请输入数列个数:";
cin>>n;
fuzhi(a,n);
for(i=0;i b[i]=a[i]; q=shell(a,n); //进入Shell法循环 cout<<"---------------------------"; cout<<"\n使用Shell排序法排序后的数据:"< for(int y=0;y cout< cout<<"\n排序次数为:"< for(i=0;i a[i]=b[i]; 编号:10 p=zhijie(a,n); //进入直接法循环 cout<<"---------------------------"; cout<<"\n使用直接排序法排序后的数据:"< for(int w=0;w cout< cout<<"\n排序次数为:"< for(i=0;i a[i]=b[i]; o=charu(a,n); //进入插入法循环 cout<<"---------------------------";