美文网首页
4.测试算法的性能

4.测试算法的性能

作者: 村上果树 | 来源:发表于2018-02-25 00:08 被阅读0次

本例中测试选择排序的性能. 用选择排序对一数组进行排序,该数组为长度为10000,每个数组元素的大小是[0,10000]中随机的一个.

main.cpp:
#include<iostream>
#include<algorithm>
#include"temp.h"
using namespace std;

template<typename T>
void selectionSort(T arr[], int n){
    for(int i = 0; i < n-1; i++){
        int minIndex = i;
        for( int j = i + 1; j < n; j++ )
            if( arr[j] < arr[minIndex])
                minIndex = j;
        swap(arr[i],arr[minIndex]);
    }
}

int main()
{
    int N = 10000;
    int *arr = SortTestHelper::generateRandomArray(N,0,N);
    SortTestHelper::testSort("Selection Sort", selectionSort, arr, N); 
    delete[]arr;
    return 0;
}
test.h:
#ifndef _TEMP_H
#define _TEMP_H
#include <iostream>
#include <ctime>
#include <cassert>
#include <algorithm>
using namespace std;

namespace SortTestHelper{
    // 生成有n个元素的随机数组,每个元素的随机范围为[rangeL, rangeR]
    int *generateRandomArray(int n, int rangeL, int rangeR){
        assert(rangeL <= rangeR);
        int *arr = new int[n];
        srand(time(NULL));//将当前时间作为种子设置 
        for(int i = 0; i < n; i++)
            arr[i]  = rand() % (rangeR - rangeL + 1) + rangeL;//函数返回一个随机整数,但需要对随机整数的范围进行控制 
        return arr;
    }
    template<typename T>
    void PrintArray(T arr[], int n){
        for( int i = 0; i < n; i++)
            cout << arr[i] << " ";
        cout << endl;
        return;
    }
    template<typename T>
    bool isSorted(T arr[], int n){
        for( int i = 0; i < n-1; i++ )
            if(arr[i] > arr[i+1])
                return false;
        return true;
    }
    /*
    * endTime - startTime返回的是运行了几个时钟周期
    * CLOCK_PER_SEC是标准库中定义的宏,表示每秒钟运行的时钟周期的个数
    */
    template<typename T>
    void testSort(const string& sortName, void (*sort)(T[], int), T arr[], int n){
        clock_t startTime = clock(); //返回表示时钟周期的数据
        sort(arr, n);
        clock_t endTime = clock();
        assert(isSorted(arr,n));
        cout << sortName << ":" << double( endTime - startTime ) / CLOCKS_PER_SEC << " s" << endl;
        return;
    }
};

#endif

相关文章

  • 4.测试算法的性能

    本例中测试选择排序的性能. 用选择排序对一数组进行排序,该数组为长度为10000,每个数组元素的大小是[0,100...

  • Ontology VBFT共识算法性能测试

    Ontology VBFT共识算法性能测试报告 测试背景 本次对本体的性能测试,代码全部来自本体GitHub开源代...

  • 性能测试 基本类型

    性能测试有以下类型:1.验收性能测试;2.负载测试;3.压力测试;4.配置测试;5.并发测试;6.可靠性测试;7....

  • 关于不同排序算法的性能比较

    一个排序算法性能测试的c++实现,用于测试不同排序算法的耗时,代码如下: 比较直接排序与选择排序示例: 测试结果:

  • 4.3训练数据集、测试数据集

    4.3训练数据集、测试数据集 1.判断机器学习算法的性能 测试我们的算法 train_test_split 将原始...

  • 功能测试用例编写框架-2020-04-22

    功能测试框架可以包括:界面友好性测试、功能测试、链接测试、容错测试、稳定性测试、常规性能测试、配置测试、算法测试等...

  • BAT其一 - 测试开发专家

    岗位描述: 1. 负责全域数据和应用产品的测试工作,包括产品功能测试,性能测试,压力测试,数据计算测试,算法效果分...

  • 软件性能测试目录

    软件性能测试Ⅰ 软件性能测试Ⅱ 软件性能测试Ⅲ 软件性能测试Ⅳ 软件性能测试Ⅴ 软件性能测试Ⅵ 软件性能测试Ⅶ 软...

  • 一步一步学习数据结构和算法(零) 排序算法辅助测试函数

    辅助测试函数 文中使用的图片来自慕课网课程算法与数据结构 本部分构建一些辅助测试函数, 用于辅助我们测试算法性能....

  • 性能测试概览目录

    性能测试概览Ⅰ 性能测试概览Ⅱ 性能测试概览Ⅲ 性能测试概览Ⅳ

网友评论

      本文标题:4.测试算法的性能

      本文链接:https://www.haomeiwen.com/subject/yuchxftx.html