随机生成一个大小为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