资源简介
用C++编写。
里面有详细的插入排序,快速排序,合并排序和选择排序的代码。
排序算法测试实验通过设计测试数据集,编写测试程序,用于测试三种算法的正确性,三种算法在不同复杂性上的表现(最好情况、最差情况、平均情况),三种算法每次的的比较频率和腾挪频率。
使用说明:Sort_Test.cpp可以直接运行,输出结果可在本文件夹下的Result.txt中查看
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include“InsertSort.h“
#include“QuickSort.h“
#include“QuickSort2.h“
#include“MergeSort.h“
#include
using namespace std;
void QuickSort(int a[]int pint rint &Compare_Countint &Shift_Count); //快速排序
void QuickSort2(int a[]int pint rint &Compare_Countint &Shift_Count); //快速排序随机选择策略
void InsertSort (int a[] int n); //插入排序
void MergeSort(int a[]int n); //合并排序
int main()
{
clock_t start finish;
//测量一个事件持续的时间
double duration;
ofstream *ofs;
//将所有输出结果保存到一个文件中方便比较结果
string fileName = “Result.txt“;
ofs = new ofstream(fileName.c_str()ios::out|ios::app);
//为使计算结果接近理论值,将size取到非常大
const int size = 10000;
int a[size];
int b[size];
//用于比较次数和移动次数的计数
int Compare_Count=0 Shift_Count=0;
srand(time(0));
ofs->close();
ofs->open(fileName.c_str()ios::out|ios::app);
if( ofs->fail())
{
cout<<“!!“;
ofs->close();
}
//为使计算结果接近理论值,这size个数随机取值
for(int k =1; k <=size; ++k)
{
a[k] = rand()%1000;
b[k] = a[k];
}
//在文件中写入运行程序的时间
SYSTEMTIME sys;
GetLocalTime( &sys );
ofstream ofs2;
char filename[16]=“Result.txt“;
ofs2.open(filenameostream::app);
ofs2<< sys.wYear<< “/“ << sys.wMonth << “/“ << sys.wDay << “ “ << sys.wHour<<“:“< ofs2.close();
//开始测试
*ofs< cout<<“*******************************************************************“< cout<<“排序内容:0~999共“ << size << “ 个整数“< cout<<“*******************************************************************“<
//平均情况
cout<<“第1次:平均情况“< “分别进行三种排序(快速排序、插入排序、合并排序)“ < *ofs<
//快速排序
cout<<“===================================================================“< cout<<“快速排序:“< *ofs< cout< double duration_arrayf1[10];
for(int i=0 ; i<10; ++i)
{
for( int k =1; k <=size; ++k)
{
a[k] = b[k];
}
cout< start = clock();
QuickSort(a1sizeCompare_CountShift_Count);
finish = clock();
duration_arrayf1[i] = (double)(finish - start) / CLOCKS_PER_SEC;
cout< “总的腾挪次数为:“< cout<<“快速排序: “< *ofs<<“第“<< i <<“次快速排序: “ <
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-18 20:36 三种排序算法测试实验\
文件 1317 2015-04-22 21:27 三种排序算法测试实验\InsertSort.h
文件 1831 2015-04-22 21:27 三种排序算法测试实验\MergeSort.h
文件 955 2015-04-22 21:27 三种排序算法测试实验\QuickSort.h
文件 1397 2015-04-22 21:27 三种排序算法测试实验\QuickSort2.h
文件 0 2015-05-18 20:37 三种排序算法测试实验\Result.txt
文件 16268 2015-04-22 21:06 三种排序算法测试实验\Sort_Test.cpp
文件 1376978 2015-04-22 21:04 三种排序算法测试实验\Sort_Test.exe
评论
共有 条评论