Hi,

I am writing this to be used as generating an initial random permutation from 1 to n out of which a graph will be constructed on which the algorithm for the quadratic assignment problem will be used. Since the whole goal is time effeciency and better optimized code, how can i make this code more optimized and a little less lines of code

Code:

#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <time.h>
int main() {
int test = 0,a = 0, i = 0,n = 0, k = 0, *perm;
printf("Enter value of n: ");
scanf("%d",&n);
printf("size of the permutation array is [%d]\n",n);
perm = new int[n];
if(perm == NULL)
printf("Unable to assign memory to permutation array of size [%d]\n",n);
for (k = 0;k < n;k++)
perm[k] = 0;
srand(time(0));
while(i != n) {
a = 1 + (rand() % n);
if( a <= n && a >= 1){
for (k = 0;k < n;k++){
if( a == perm[k])
test = 1;
}
if (test != 1)
{
perm[i] = a;
i++;
}
else
test =0;
}
}
for (k=0;k < n;k++)
printf("[%d]",perm[k]);
printf("\n");
delete [] perm;
return 0;
}