3.隨機(jī)生成算法測(cè)試用例

隨機(jī)生成一個(gè)大小為100的數(shù)組,每個(gè)元素的范圍是[0,200],然后對(duì)其進(jìn)行選擇排序.

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個(gè)元素的隨機(jī)數(shù)組,每個(gè)元素的隨機(jī)范圍為[rangeL, rangeR]
    int *generateRandomArray(int n, int rangeL, int rangeR){
        assert(rangeL <= rangeR);
        int *arr = new int[n];
        srand(time(NULL));//將當(dāng)前時(shí)間作為種子設(shè)置 
        for(int i = 0; i < n; i++)
            arr[i]  = rand() % (rangeR - rangeL + 1) + rangeL;//函數(shù)返回一個(gè)隨機(jī)整數(shù),但需要對(duì)隨機(jī)整數(shù)的范圍進(jìn)行控制 
        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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容