21xrx.com
2024-12-23 00:17:58 Monday
登录
文章检索 我的文章 写文章
C++如何实现随机排序
2023-07-01 02:31:22 深夜i     --     --
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++中轻松实现随机排序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复