数据结构课程设计 - 排序算法比较[完整版]

发布时间 : 星期三 文章数据结构课程设计 - 排序算法比较[完整版]更新完毕开始阅读

数据结构课程设计——排序算法比较

课程设计报告

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

学生姓名:高扬

专 业:网络工程 班 级:10211302 学 号:1021130221 指导教师:姜林 王志波

2012年6 月27 第 1 页 共 15 页

数据结构课程设计——排序算法比较

目 录

排序算法比较

一、程序要求分析

二、程序主要功能

三、程序运行平台

四、程序数据结构

五、算法及时间复杂度

六、程序源代码

七、自我总结

第 2 页 共 15 页

数据结构课程设计——排序算法比较

各 种 排 序

一、需求分析

任务:用程序实现插入法排序、起泡法、选择法、快速法、合并法排序;

输入的数据形式为任何一个正整数,大小不限。 输出的形式:数字大小逐个递增的数列。

要求给出多组不同元素个数的输入数据,并用列表打印出每种排序下的各趟排序结果。每个排序法结束时应打印出其元素比较的次数和交换的次数。此程序需将结果用列表打印,一定要将其打印结果排列好。

二、程序的主要功能

1.用户输入任意个数,产生相应数量的随机数

2.用户可以自己选择排序方式(直接插入排序,冒泡排序、快速排序、选择排序、二路归并排序五种排序方法)的一种

3.程序给出原始数据、排序后从小到大的数据,并给出排序所用的时间,比较的总次数和交换的总次数。

三、程序运行平台

Visual C++ 6.0版本

四、数据结构

1.类: NuovSort{ public: void Myface(); void choose(); void insertsort(int R[],int n); //直接插入排序法 void Bubblesort(int R[],int n); //冒泡排序算法实现 void quicksort(int R[],int left,int right); //快速排序算法实现 void selectsort(int R[],int n); //直接选择排序算法实现

第 3 页 共 15 页

数据结构课程设计——排序算法比较

void merge(int R[],int A[],int s,int m,int t);//二路归并排序算法实现 void mergepass(int R[],int A[],int n,int c); void mergesort(int R[],int n); };

2.主界面:

Myface() //界面 { cout<<\ -->各种排序算法实现<--\

cout<<\ cout<<\ 1.直接插入排序 #\ cout<<\ 2.冒泡排序 #\ cout<<\ 3.快速排序 #\ cout<<\ 4.直接选择排序 #\ cout<<\ 5.二路归并排序 #\ cout<<\ cout<<\}

3.选择界面: choose() { int i,x,n,s,t; time_t t1,t2; double tt1,tt2,tt3,tt4,tt5; cout<<\欢迎您使用 高扬 的排序程序\ cout<<\请问,需要几个被排序数字?\ do{ cout<<\请输入个数(范围在 1~500 之间): \ cin>>n; } while((n<1)||(n>500)); int left=0,right=n-1; for(i=0;i

R[i]=rand()?8+1; //产生随机数

cout<<\被排序的数字随机产生如下:\ for(i=0;i

第 4 页 共 15 页

联系合同范文客服:xxxxx#qq.com(#替换为@)