給定一字符數組,求數組中字符組成的所有排列

灬猜想灬 14年前發布 | 11K 次閱讀 Android 4.1 SSD Windows Phone

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;
            }
        }
    }

 本文由用戶 灬猜想灬 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!