Zliy Pes truly breeds Без собаки зайца не поймаешь (Вл.Даль). Проверено: блох нет
Валяльня
Версия для печати





! Осторожно: Злой пес !
На главную страницу

Статьи | Web-обзоры | Гороскопы и пр. | Musica | Юмор | Programming | Математика
Информатика | Поиск по сайту | Кроссворды | В гостях UPSA | Новый сайт: Adsense, Scriptlance, блог
 
Ads:
Java: генерируем перестановки

Оговорюсь сразу: я не претендую на роль Java-гуру, я только учусь. Так что те программы, которые вы здесь встретите, могут показаться вам непрофессиональными и ламерскими. Возможно кому-то они покажутся интересными. И тем и другим предлагаю оставлять свои комментарии после статьи (внизу страницы).

Нижеследующая программа генерирует все перестановки чисел от 1 до n. Число n задается "в лоб" в теле функции main().

public class trans
{
static int max = 20;
static int n;
static int p[] = new int[max];
static boolean used[] = new boolean[max];

public final static void finish()
	{
	for (int i=0;i<n;i++) System.out.print ((p[i]+1)+" ");
	System.out.println();
	}

public final static void step(int k)
	{
	if (k==n) finish();
	else{
		for (int i=0;i<n;i++) 
			if (!used[i]) 
				{
				used[i] = true;
				p[k] = i;
				step(k+1);
				used[i] = false;
				}
		}
	}

public final static void main (String s[])
	{
	n = 3;
	for (int i=0;i<n;i++) used[i] = false;
	step (0);
	}
}            	     	

Например при n=3 программа выведет следующее:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
19.03.2002
Комментарии
 

 

О проекте | Стая Злого Пса | Что нового? Quick jump: © 2002-2007