remplissage d'un tableau avec le nombre aléatoire

Je suis en train de remplir un tableau de 20 entiers avec des nombres de 1 à 20 dans un ordre aléatoire.
voici mon code:

 int lookup[20]={0}; 
 int array[20]={0};
 srand(time(NULL));
 for(int i=0;i<20;++i){ 
    bool done=false;
    while(!done){
      int n=rand()%20;
      if(lookup[n]==0){
          array[i]=n;
          lookup[n]=1;
          done=true;
      }
    }
 }

J'ai créé une liste de choix de la matrice de vérifier si le nombre aléatoire est pas encore choisi, et de les stocker dans un tableau. Comme vous pouvez le voir, j'ai créé 2 boucles, une pour la traversée tableau et le tout pour choisir le nombre aléatoire. Dans chaque boucle while itération, le nombre peut réapparaître et causant une autre boucle while. Est-il plus rapide façon de le faire?

OriginalL'auteur James | 2010-03-03