您的位置:首页 > 编程语言 > C语言/C++

雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果

2017-12-16 22:23 881 查看
在进行第i次迭代时,元素A[i]是从元素A[i]到A
中随机选取的

伪代码



c++代码

#include <iostream>
#include<time.h>
using namespace std;

#define N 20//数组大小为20

void randomizeInPlace(int array[],int len);

int main()
{
int Array
;
for(int i=0;i<N;++i)
Array[i]=i+1;//数组赋初值
cout<<"原Array数组顺序为:"<<endl;
for(int i=0;i<N;++i)
cout<<Array[i]<<" ";
cout<<endl<<"randomizeInPlace随机化后Array数组顺序为:"<<endl;
randomizeInPlace(Array,N);
for(int i=0;i<N;++i)
cout<<Array[i]<<" ";

return 0;
}

void randomizeInPlace(int array[],int len)
{
srand(time(NULL));
for(int i=0;i<len;++i)
{
int randomNumber,temp;
randomNumber=i+rand()%(len-i);//生成一个从i到len-1的随机数
temp=array[i];//交换
array[i]=array[randomNumber];
array[randomNumber]=temp;
}
}


第一次运行结果



第二次运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐