数据结构课程设计——排序算法比较
cout<<"元素交换次数为"<
数据结构课程设计——排序算法比较
快速排序
选择排序
O(n2)
O(n2)
O(n*log2n)
不稳定
O(n2)
稳定
六、程序源代码
/**********************************************************************************************
设计要求:利用随机函数产生 N 个随机整数(N = 1 到 500),利用直接插入排序,冒泡排序、快
速排序、选择排序、二路归并排序五种排序方法(可添加其它排序方法)进行排序(结果为由小
到大的顺序),并统计每一种排序所耗费的时间,比较的总次数和交换的总次数。
#include
#include
#include
#include
#include
using namespace std;
const int maxsize=500;
int R[maxsize];
int A[maxsize];
int i,n,right,left;
int comN1=0,chaN1=0;
int comN2=0,chaN2=0;
int comN3=0,chaN3=0;
int comN4=0,chaN4=0;
int comN5=0,chaN5=0;
class 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);
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);
//直接插入排序法
//冒泡排序算法实现
};
//快速排序算法实现
//直接选择排序算法实现
第 7 页 共 15 页
void NuovSort::Myface()
{
数据结构课程设计——排序算法比较
//界面
cout<<"\t
-->各种排序算法实现<--"<>n;
}
while((n<1)||(n>500));
int left=0,right=n-1;
for(i=0;i>m;
switch(m)
{
case 1:t1=time(NULL);insertsort(R,n);t2=time(NULL);tt1=difftime(t2,t1);
第 8 页 共 15 页