在慕课网学习了一段时间后,觉得可以了,借鉴讲师们说的和自己的经验,总结下如何测试一个程序代码的效率和开销问题。
以 排序算法为例,具体分析如下:
//main()函数,.cpp文件
// Created by Ant on 07/16/2017
//默认排成升序
//
#include <iostream>
#include <algorithm>
#include "SortTestHelper.h"
#include "STL_Sort.h"
#include "SelectionSort.h"
#include "InsertionSort.h"
using namespace std;
int
main() {
const int SIZE = 10000, left = 1, right = 1000;
cout << "SIZE = " << SIZE << endl<<endl;
//生成任一随机数组
int* arr = SortTestHelper::RandomArray<int>(SIZE, left, right);
//完全拷贝原始数组元素
int* arrCo1 = SortTestHelper::CopyArray<int>(arr, SIZE);
int* arrCo2 = SortTestHelper::CopyArray<int>(arr, SIZE);
SortTestHelper::PrintArray(arr, 50); //输出原始数组,乱序
SortTestHelper::SortingTime("STL_Sort", STL_Sort, arr, SIZE);
SortTestHelper::PrintArray(arr, 100); //输出已排好序数组,可用于检查排序结果
cout << endl;
SortTestHelper::PrintArray(arrCo1, 50); //可用于确认数组拷贝是否成功
cout << endl;
SortTestHelper::SortingTime("DirectSelectionSort", DirectSelectionSort, arrCo1, SIZE);
SortTestHelper::SortingTime("DirectInsertionSort", DirectInsertionSort, arrCo2, SIZE);
cout << endl;
//生成几乎有序数组
int* test = SortT