void Podstav (int n) { std::cout << "Генерация всех перестановок в лексикографическом порядке:" << std::endl; int i = 0,j = 0,tmp,min,nmi; int* x=new int [n]; for(i = 0; i < n; i++) x[i] = i+1; while(true) { for(i = 0; i < n; i++) std::cout<= 0 && x[i+1] < x[i]; i--); if(i==-1) break; min = 100000; nmi = i; for(j = i+1; j < n; j++) if(x[j] > x[i] && x[j] < min) { min = x[j]; nmi = j; } x[nmi] = x[i]; x[i] = min; for(j = i+1; j <= (i+n)/2; j++) { tmp = x[j]; x[j]=x[i+n-j]; x[i+n-j]=tmp; } } }