Accueil > Forum > > > > récursive en itérative
récursive en itérative
vendredi 13 janvier 2006 à 23:04:29 |
récursive en itérative

dark_naruto25
|
Salut les amis, voilà mon prob :
J'ai une fonction récursive que je veux mettre, pour des raisons de simplicité, en itérative. Voilà cette fonction :
void melanger(char *tab,int deb,int fin)
{
int i;
char tmp;
char tab1[NB];
cpTab(tab1,tab,NB);
if( (fin-deb+1)>=3 )
for(i=deb; i<=fin; i++)
{
melanger(tab1,deb+1,fin);
swap(tab1[deb],tab1[i+1]);
}
else
{
afficheTab(tab1,NB);
swap(tab1[deb],tab1[fin]);
afficheTab(tab1,NB);
}
}
donc si quelqu'un à une petite idée qui pourrai me mettre sur la voie, merci
|
|
vendredi 13 janvier 2006 à 23:35:20 |
Re : récursive en itérative

BruNews
|
Un mélangeur de chaine que tu veux ? Si oui je viens de faire et semble aller.
void __stdcall MelangeChaine(char *psz) { int len, pos, i; char c; i = len = strlen(psz); if(len < 2) return; srand(GetTickCount()); do { while((pos = rand() % len) == i); i--; c = psz[i]; psz[i] = psz[pos]; psz[pos] = c; } while(i); }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE x, PSTR y, int z) { char buf[12]; strcpy(buf, "Hello Word"); MelangeChaine(buf); MessageBox(0, buf, szappname, 0); return 0; }
ciao...
[ Lien ] BruNews, MVP VC++
|
|
samedi 14 janvier 2006 à 19:17:13 |
Re : récursive en itérative

dark_naruto25
|
en fait ma fonction affiche toute les possibilité de combinaison du tableau tab... Seulement je l'ai fait en récursive (c'est plus simple), et il me la faudrais en itérative.
|
|
samedi 14 janvier 2006 à 19:44:41 |
Re : récursive en itérative

vecchio56
|
"que je veux mettre, pour des raisons de simplicité, en itérative"
Non justement, un code récursif est souvent plus simple a comprendre
|
|
dimanche 15 janvier 2006 à 01:50:08 |
Re : récursive en itérative

dark_naruto25
|
C'est juste le code où la fonction sera utilisé qui sera plus simple... Alors pas d'idée ?!
|
|
dimanche 15 janvier 2006 à 02:41:39 |
Re : récursive en itérative

KissyFroth
|
Je ne vois pas comment tu veux mettre ca en itératif : ce n'est pas comme si tu calculais la valeur d'une suite au rang n par exemple; dans ce cas tu fais une écriture itérative pour éviter des calculs inutiles. Or toi, dans ton cas précis tu cherche justement à avoir toutes les combinaisons. Par conséquent l'écriture récursive me semble la meilleure.
La seule chose que je vois c'est que tu souhaiterais peut etre que les résultats s'affichent dans un autre ordre que l'ordre actuel mais sinon ta fonction est bonne.
Ou alors (derniere solution qui se rapproche le plus de l'itératif mais ca n'en est pas )
tu traites ton tableau case par case (en faisant progresser un curseur)et tu essaye pour chaque case toutes les valeurs possibles (c'est à dire qui ne sont pas déjà "prises" dans les cases précédentes)
Voilà en espérant que ca t'aide.
|
|
dimanche 15 janvier 2006 à 12:26:58 |
Re : récursive en itérative

dark_naruto25
|
Je dois travailler sur chaque combinaison trouvée, mais comme la
fonction est récursive cela m'oblige à mémoriser toute les
combinaisons. et comme vous pouvez le voir, le nombre de combinaison
possible est variable et peut être très très grand.
|
|
Cette discussion est classée dans : fin, nb, tab1, récursive, deb
Répondre à ce message
Sujets en rapport avec ce message
Probleme avec mon algo et les structures [ par masterix ]
Bonjour à tous,Voilà mon petit soucis je vient de commencer les structures j'ai beau chercher dans mes cours je ne voit pas où se trouve mon problème,
Recursivités [ par darkwhite ]
Salut a tous, Je viens de commencer mon initiation au fonction recursives mais il y a une chose qui m'echape dans ce code simple void debut_fin(int nb
fin execution [ par anthony65 ]
j'ai fais un programme console c++ avec visual studio.net 2005 et des que je l'execute a la fin de l'execution il sort, ne me laissant pas voir le re
Creation d'un mini Shell [ par halima ]
Bonjour! Je dois ecrire un programme en C (mini_shell) qui se comporte comme un Shell.Ce programme doit donner le repertoire courant (getcwd(3)) suivi
programme s'arret avec ;Fin de la connexion (raccroché) [ par sebastienmz ]
Mon programme se lance il éféctue une recherche sur yahoo et d'un coups : Fin de la connexion (raccroché)et il s'arrete.jai mis : signal(SIGPIPE, SIG_
problème fonction récursive [ par lenanttais44 ]
Bonjour j'ai un problème en utilisant des fonctions récursivesJe dois faire un tri fusionJ'ai fait du copier-coller sur des programmes étant déjà fait
Probleme string [ par Metos62 ]
Bonjour à tousVoulant utiliser la source MANIPULER UNE BASE DE DONNÉE ACCESS EN C (DEV-C++)j'ai été confronté au probléme des requetes
gestion du temps en fraction de seconde dans C [ par mouloudh ]
Bonjour la communauté,j'essaie de faire un programme qui simule le dértoulement d'un tapis roulant, avec vitesse et detecteurs de début et de fin. J'a
Classique code : conversion decimale=>binaire [ par darkwhite ]
salut à tous,Comme un nombre incalculable de gens je dois faire le desormais classique code : convertir du binaire en decimale. Pour ma part je l'ai e
Problème avec vector<char> [ par gargourifahmi ]
Salut, J'ai un pb dont je n'ai pas pu résoudre. En fait j'utilise un vecteur de caractère pour stocker des variables sous forme de caractères. Lors de
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
ALGORITHMESALGORITHMES par whayoub
Cliquez pour lire la suite par whayoub
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|