C++で10,000個の配列をランダムに生成してソートする方法


  1. 標準ライブラリのランダム関数とソート関数を使用する方法:
#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;
}
  1. ライブラリを使用せずに独自のランダム関数とソートアルゴリズムを実装する方法:
#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個の要素を持つ配列をランダムに生成し、それをソートすることができます。