3.随机生成算法测试用例

随机生成一个大小为100的数组,每个元素的范围是[0,200],然后对其进行选择排序.

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 = 100;
    int *arr = SortTestHelper::generateRandomArray(N,0,200);
    selectionSort(arr, N);
    SortTestHelper::printArray(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;
    }
};
#endif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。