随机打乱数据
主要就是看看怎么输入,以及在打乱的过程中,如何保证每一个index都能够考虑
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <vector>
using namespace std;
void random(vector<int> &arr,int n){
srand(time(NULL));
int index=0,tmp=0;
for(int i=0;i<n;i++){
index = rand()%(n-i)+i;
if(index!=i){
tmp = arr[i];
arr[i] = arr[index];
arr[index] = tmp;
}
}
cout<<"size:"<<arr.size()<<endl;
cout<<endl;
}
int main(){
int i=0;
vector<int> arr;
char ch;
while(scanf("%d",&i)!=EOF){
arr.push_back(i);
ch=getchar();
if(ch!=' ') break;
}
for(vector<int>::iterator iter=arr.begin();iter!=arr.end();iter++){
cout<<*iter<<" ";
}
cout<<endl;
random(arr,arr.size());
for(vector<int>::iterator iter=arr.begin();iter!=arr.end();iter++){
cout<<*iter<<" ";
}
return 0;
}