Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2014, 12:31   #1
lusia7
Пользователь
 
Регистрация: 25.11.2014
Сообщений: 12
Вопрос Для заданного n получить все возможные перестановки чисел 1,2..n.

Объясните, пожалуйста,как работает эта программа.
Для заданного n получить все возможные перестановки чисел 1,2..n.

Код:
#include <stdio.h>
#include <conio.h>

#define N 4

void swap(int *a, int *b)
{
  int t;

  t=*a;
  *a=*b;
  *b=t;
}

void reverse(int * P,int m)
{
   int i=0, j=m;
   while(i<j)
   {
     swap(&P[i], &P[j]);
     ++i;
     --j;
   }
}

void antilex(int * P,int m)
{
  int i;

  if(m==0)
  {
    for(i=0; i<N; ++i)
      printf("%d ",P[i]);
    printf("\n");
  }
  else
  {
    for(i=0; i<=m; ++i)
    {
      antilex(P,m-1);
      if(i<m)
      {
        swap(&P[i], &P[m]);
        reverse(P,m-1);
      }
    }
  }
}

 int main()
{
  int i;
  int P[N];

  for(i=0; i<N; ++i)
    P[i] = i+1;

  antilex(P,N-1);
  getch();
}
lusia7 вне форума Ответить с цитированием
Старый 02.12.2014, 13:35   #2
lusia7
Пользователь
 
Регистрация: 25.11.2014
Сообщений: 12
По умолчанию

Что нужно изменить,чтобы перестановки производились в лексикографическом порядке?
lusia7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти все возможные суммы из чисел, которые есть в массиве unicozz Паскаль, Turbo Pascal, PascalABC.NET 4 23.11.2012 14:36
задан массив чисел из n элементов. вывести все возможные варианты перестановки из n элементов по m ( на паскале ) Sting707 Паскаль, Turbo Pascal, PascalABC.NET 2 11.03.2012 08:20
Дано n вещественных чисел. Напечатать все перестановки. Рекурсивная функция на Си sometimes_elen Помощь студентам 0 19.05.2011 22:39
Все возможные размещения чисел от 2 до n mariafors Общие вопросы C/C++ 3 25.12.2010 21:19