給定一字符數組,求數組中字符組成的所有排列
public static void main(String[] args)
{
char[] origin = { 'a', 'b', 'c', 'd', 'e', 'f' };
int length = origin.length;
int[] tmp = new int[length];
char[] res = new char[length];
boolean[] check = new boolean[length];
int index = 0, level = 0;
while (true)
{
if (index >= 0 && index < length && level >= 0 && level < length)
{
if (!check[index])
{
tmp[level] = index;
res[level] = origin[index];
check[index] = true;
level++;
index = 0;
}
else
{
index++;
}
}
else if (level >= length)
{
System.out.println(new String(res));
level = length - 1;
index = tmp[level];
check[index] = false;
index++;
}
else if (index >= length)
{
level--;
if (level < 0)
break;
index = tmp[level];
check[index] = false;
index++;
}
else
{
break;
}
}
} 本文由用戶 灬猜想灬 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!