头文件
#ifndef INC_03_SELECTION_SORT_GENERATE_TEST_CASES_SORTTESTHELPER_H
#define INC_03_SELECTION_SORT_GENERATE_TEST_CASES_SORTTESTHELPER_H
#include <iostream>
#include <ctime>
#include <cassert>
using namespace std;
namespace SortTestHelper {
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
应用
#include <iostream>
#include "SortTestHelper.h"
using namespace std;
template < typename T>
void selectionSort ( T arr[ ] , int n) {
for ( int i = 0 ; i < n ; 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 = 20000 ;
int * arr = SortTestHelper:: generateRandomArray ( N, 0 , 100000 ) ;
selectionSort ( arr, N) ;
SortTestHelper:: printArray ( arr, N) ;
delete [ ] arr;
return 0 ;
}