早上刷微博的時候看到用程序輸入全排列,一想發(fā)現(xiàn)自己沒寫過,不會,查資料吧。百度百科上的解釋,總結(jié)一下就是將當(dāng)前的Index與后面的Index依次替換,直到結(jié)束!
//將數(shù)組中指定的下標(biāo)交換位置 PRivate static void 交換(char[] charlist, int left, int right) { var m = charlist[left]; charlist[left] = charlist[right]; charlist[right] = m; } private static void 遞歸(char[] charlist, int index, int length) { if (index == length - 1) //當(dāng)訪問到列表的最后時將當(dāng)前的順序輸出 { for (int i = 0; i < charlist.Length; i++) { Console.Write(charlist[i]); } Console.WriteLine(); } else { //訪問列表 for (int i = index; i < length; i++) { if (i != index) { 交換(charlist, index, i); } 遞歸(charlist, index + 1, length); if (i != index) { 交換(charlist, index, i); } } } }
新聞熱點
疑難解答