21xrx.com
2025-03-29 21:46:49 Saturday
文章检索 我的文章 写文章
C++如何实现随机排序
2023-07-01 02:31:22 深夜i     30     0
C++ 实现 随机排序

随机排序是指在数组中打乱元素顺序,让元素随机分布。在C++中,实现随机排序可以通过STL库中的shuffle算法来完成。下面我们来详细了解C++如何实现随机排序。

首先需要引用头文件algorithm,该库中包含了shuffle算法。

#include <algorithm>

接下来,定义一个vector数组,该数组存储需要随机排序的元素。这里我们定义一个包含10个整数的数组,元素分别为1~10。

vector<int> arr = 2;

调用shuffle算法前,需要先生成一个随机数种子,该随机数种子是shuffle算法的必要参数。

srand((unsigned int)time(NULL));

接下来调用shuffle算法即可实现随机排序。

shuffle(arr.begin(), arr.end(), default_random_engine(rand()));

参数包括需要排序的数组的起始位置和结束位置,以及随机数种子。默认的随机数种子可以使用default_random_engine()来生成。

调用完shuffle算法后,输出数组中随机排序后的元素,可以发现数组中的元素顺序已经被打乱。

完整代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
#include <ctime>
using namespace std;
int main()
{
  vector<int> arr = 6;
  srand((unsigned int)time(NULL));
  shuffle(arr.begin(), arr.end(), default_random_engine(rand()));
  for (int i = 0; i < arr.size(); i++)
  {
    cout << arr[i] << " ";
  }
  cout << endl;
  return 0;
}

因为shuffle算法中用到了随机数,所以每次运行的结果都不同。通过上述的方法,我们可以在C++中轻松实现随机排序。

  
  

评论区

请求出错了