Я пишу программу для создания различных перестановок массива с фиксированной длиной 3. Основная проблема, с которой я сталкиваюсь, заключается в том, что она всегда генерирует повторяющиеся перестановки. Как я могу это исправить, не используя набор Java‹>.
public class generatingCombination {
public static void main(String[] args) {
String s="ABCDEF";
printArray(s,0,new char[3], new boolean[s.length()]);
}
static void printArray(String s,int x,char []arr, boolean [] used){
if(x==3){
System.out.println(Arrays.toString(arr));
return;
}
else
{
for( int i=0;i<s.length();i++){
if(used[i]) continue;
arr[x]=s.charAt(i);
used[i]=true;
printArray(s, x+1, arr,used);
used[i]=false;
printArray(s, x+1, arr,used);
}
}
}
}
used
, если вы вызываете себя без установки значения (второй рекурсивный вызов)? - person Andreas   schedule 07.08.2016std::next_permutation
. - person templatetypedef   schedule 07.08.2016