【精选】09排序算法应用一(快速、选择、冒泡法排序) 下载本文

内容发布更新时间 : 2024/7/1 5:28:46星期一 下面是文章的全部内容请认真阅读。

编号:09

河北工业大学计算机软件技术基础(VC)课程设计报告

学院 电气与自动化学院 班级 电气081 姓名 杨柳__

学号 080697 成绩 __ ____

一、题目:

排序算法应用一(快速、选择、冒泡法排序)(09)

二、设计思路

1、总体设计 1)分析程序的功能

输入一组无序数列,分别通过快速、选择、冒泡法进行排序,使其按一定规律(由大到小或由

小到大)排列。

2)系统总体结构:

本程序共包括一个头文件,八个函数(包括一个主函数,七个被调函数)。主函数主要完成对各函数的调用及结构的控制 ,七个被调函数中,包括一个输入函数,六个排序函数。

2、各功能模块的设计:

Ⅰ. 主函数模块:主要通过对各函数的调用实现相应的要求。 Ⅱ. 输入函数模块:主要通过循环的方法实现对一维数组的输入。 Ⅲ. 排序函数模块:通过循环方法实现对一维数组有序排列。

3、设计中的主要困难及解决方案

1)由于没有学过快速法排序,在编写程序时遇到困难,总是调试不成功。在图书馆借到关于快速法排序算法的书,认真阅读与思考并应用于程序,终于编好程序。

2)对同一个数组进行三次排序,第二、三次排序前数组已经有序,达不到分别排序的目的。解决方案是将原数组复制到另外两个数组中去,分别排序。

3)由于之前并未涉及过有关多文件函数的编写及处理问题,导致在创新设计开始时丝毫没有头绪。主要通过对实验教程P15内容的仔细阅读与思考而学会并应用于程序的编写当中去。

4、我所设计的程序最终完成的功能

1)所编程序可以完成对无序数组的升序、降序排序并分别统计排序次序。 2)准备的测试数据如下:

第1页/共9 页

编号:09

49 38 65 97 76 13 27 运行结果:

三、程序清单

本程序包含main.cpp、input.cpp、bubblesort.cpp、selectionsort.cpp、quicksort.cpp、bubble.cpp、selection.cpp、quick.cpp、keshe.h九个文件。

1、main.cpp文件清单

#include\void main() {

int sequence[N],n3=0,a[N],b[N],x,c[N],d[N],e[N]; cout<<\请输入\个整数:\input(sequence);//输入无序数组 cout<<\输入的无序数列为:\for(int i=0;i

cout<

第2页/共9 页

cout<

编号:09

for(i=0;i

a[i]=b[i]=c[i]=d[i]=e[i]=sequence[i];//将输入的数组复制给另外两个数组,使三次分别对原输入的数组排序

}

cout<<\降序排列为:\\n\

bubblesort(sequence);//通过冒泡法进行降序排序 cout<

selectionsort(a);//通过选择法进行降序排序 cout<

quicksort(b,0,N-1,&n3);//通过快速法进行降序排序 cout<<\使用快速法降序排序后的数列为:\for(i=0;i

cout<

cout<

selection(d);//通过选择法进行升序排序 cout<

quick(e,0,N-1,&n3);//通过快速法进行升序排序 cout<<\使用快速法升序排序后的数列为:\for(i=0;i

cout<

cout<

2、input.cpp文件清单

#include\void input(int s[]) {

for(int i=0;i

cin>>s[i];

第3页/共9 页