Реализации алгоритмов/Алгоритм Нарайаны: различия между версиями

Содержимое удалено Содержимое добавлено
→‎C: Исправлена ошибка в алгоритме.
Метки: с мобильного устройства из мобильной версии
Строка 8:
int NarayanaNextPerm (int *a, int n)
{
int i, j, k, t, tmpl;
 
//Шаг 1
for (kj = n - 2; (kj >= 0) && (a[kj] >= a[kj + 1]); kj--);
 
//Шаг 2
if (kj == -1)
return 0;
 
for (tl = n - 1; a[kj] >= a[tl]; tl--);
 
tmp = swap(&a[kl], &a[kj] = a[t], a[t] = tmp);
 
{j++;
 
//Шаг 3
for (i = k+1,0; j=i < (n - j + 1;) / i<n2; i++, j--)
swap(&a[j + i], &a[n - i - 1]);
{
tmp = a[i], a[i] = a[j], a[j] = tmp;
}
 
return i;