Реализации алгоритмов/Алгоритм Нарайаны: различия между версиями
Содержимое удалено Содержимое добавлено
Добавлена реализация на Java и пример её использования |
Поправки к коду реализации на C |
||
Строка 47:
/* Этап № 2 */
for (j = count; j > i && !(*compare)(sequence[i - 1], sequence[j - 1]); --j);
_swapItems(sequence, i - 1, j - 1);▼
▲ _swapItems(sequence, i, j - 1);
/* Этап № 3 */
for (j =
_swapItems(sequence,
return 1;
}
Строка 77 ⟶ 76 :
void initSequence (T *sequence, unsigned count) {
/* Заполнение последовательности значениями 1, 2, 3… */
for (i = count; i; --i)
sequence[i - 1] = i;
}
Строка 85:
putchar('[');
if (count) { /* Если последовательность не пуста */
unsigned i;
printf("%d", sequence[0]);
for (
printf(", %d", sequence[i]);
}
Строка 94 ⟶ 95 :
int main () {
unsigned count;
scanf("%d", &count);
T *sequence = (T*)malloc(count * sizeof(T));
initSequence(sequence, count); /* Формирование исходной последовательности */
Строка 119 ⟶ 120 :
// Обмен значениями двух элементов последовательности
template < typename T >
static void _swap (T &
T variable = variable_0;
}
// Поиск очередной перестановки
|