#include <iostream>
#include "time.h"
using namespace std;
void algorithm(int arr[], int length, int left, int right)
{
bool* used = new bool[right + 1];
for (int i = left; i < right + 1; i++)
{
used[i] = false;
}
int random = randomInt(left, right);
for (int j = 0; j < length; j++)
{
while (used[random])
{
random = randomInt(left, right);
}
used[random] = true;
arr[j] = random;
}
delete[]used;
}
int main() {
clock_t start, finish;
start = clock();
int* arr = new int[33500];
algorithm(arr,33500,1, 50000);
cout << endl;
finish = clock();
delete[]arr;
cout << "用时:" << (double)(finish - start) << "ms" << endl;
}
到30000用时20ms,再多就跑不出来,也不报错,这是为什么,求解答。