2017-10-11 7 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 
       } 
      } 
     } 

Je ne comprends pas comment dessiner récursion dans un schéma fonctionnel, quand il y a déjà une boucle ...Comment faire un organigramme de ce code? Le plus dur pour moi est récursion dans une boucle

+0

Montrez précisément ce que vous essayez de dessiner. – Carcigenicate

+0

Je voulais dire que j'essaie de dessiner un organigramme. Comme celui-ci https://en.wikipedia.org/wiki/Flowchart#/media/File:LampFlowchart.svg –

Répondre

0

Il n'y a pas de style standard schématisation ; Je pense que nous avons pratiquement usé ce concept il y a 50 ans. Cependant, la façon dont je ferais ceci, et je recommanderais aux étudiants, est de faire un organigramme de l'appel de récursion comme vous le feriez pour n'importe quel autre appel. C'est une étape de processus "simple". Vous ne schématisez pas le flux de contrôle de la récursivité elle-même.