- 標準ライブラリのランダム関数とソート関数を使用する方法:
#include <iostream>
#include <algorithm>
#include <random>
int main() {
// 乱数生成器の初期化
std::random_device rd;
std::mt19937 gen(rd());
// 配列の生成
const int size = 10000;
int arr[size];
for (int i = 0; i < size; i++) {
arr[i] = i; // 一時的に昇順で値を設定
}
// 配列をランダムにシャッフル
std::shuffle(arr, arr + size, gen);
// 配列をソート
std::sort(arr, arr + size);
// ソートされた配列の出力
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
- ライブラリを使用せずに独自のランダム関数とソートアルゴリズムを実装する方法:
#include <iostream>
#include <cstdlib>
#include <ctime>
// 独自の乱数生成関数
int getRandomNumber(int min, int max) {
return min + rand() % (max - min + 1);
}
// 独自のソートアルゴリズム(ここではバブルソートを使用)
void bubbleSort(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 要素の交換
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
// 乱数のシード値を設定
srand(static_cast<unsigned int>(time(0)));
// 配列の生成
const int size = 10000;
int arr[size];
for (int i = 0; i < size; i++) {
arr[i] = i; // 一時的に昇順で値を設定
}
// 配列をランダムにシャッフル
for (int i = 0; i < size; i++) {
int randomIndex = getRandomNumber(0, size - 1);
// 要素の交換
int temp = arr[i];
arr[i] = arr[randomIndex];
arr[randomIndex] = temp;
}
// 配列をソート
bubbleSort(arr, size);
// ソートされた配列の出力
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
これらの方法を使用すると、C++で10,000個の要素を持つ配列をランダムに生成し、それをソートすることができます。