2017-10-11 75 views
0
 static void Main(string[] args) 
     { 
      string str = "ABCDE"; 
      char[] charArry = str.ToCharArray(); 
      permute(charArry, 0, str.Length - 1); 
      Console.ReadKey(); 
     } 

     static void permute(char[] arry, int i, int n) 
     { 
      int j; 
      if (i == n) 
       Console.WriteLine(arry); 
      else 
      { 
       for (j = i; j <= n; j++) 
       { 
        swap(ref arry[i], ref arry[j]); 
        permute(arry, i + 1, n); 
        swap(ref arry[i], ref arry[j]); //backtrack 
       } 
      } 
     } 

我不明白怎麼畫遞歸的框圖,當已經有一個for循環...如何製作此代碼的流程圖?對我來說,最難的是遞歸的for循環

+0

顯示您正在嘗試繪製的具體內容。 – Carcigenicate

+0

我的意思是我試圖繪製一個流程圖。像這樣一個https://en.wikipedia.org/wiki/Flowchart#/media/File:LampFlowchart.svg –

回答

0

沒有標準流程圖繪製風格;我想我們在50年前就已經拋棄了這個概念。然而,我會這樣做,並向學生推薦的方式是,像對待任何其他呼叫一樣,對遞歸調用進行流程圖。這是一個「簡單」的過程步驟。您不會繪製遞歸本身的控制流程。