隨機(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
