Quicksort sans récurisivité ( appel a sa propre fonction) en pur C
xtremejames183
Messages postés32Date d'inscriptionvendredi 26 mai 2006StatutMembreDernière intervention14 avril 2009
-
10 déc. 2008 à 00:59
xtremejames183
Messages postés32Date d'inscriptionvendredi 26 mai 2006StatutMembreDernière intervention14 avril 2009
-
11 déc. 2008 à 01:13
Voila le topo , sachant que la récursivité est un gouffre de mémoire sinon une m**** ,je cherche une fonction de tri rapide(QSort) en pur C sans avoir recours a cette cette m**** de récursivité , j'ai bout regarde plusieurs implémentation elles sont toutes récursif.
Les seules codes que j'ai trouve sont celles de la libc de FreeBSD et celle de Zend(moteur php) qui ne sont pas recursif , mais alors la vaut meme pas regarder , le code est trufé de goto et utilise un zillion de varaiable tmp . alors si quelqu'un a une simple idée d'un quicksort non recrusif ca serait géniale.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 10 déc. 2008 à 09:55
salut
pour commencer, la recursivite n'est pas si lente que ca, et dans le cas d'un qsort, ca va te bouffer un truc genre une cinquantaine d'octets * log(n) en stack... c'est pas enorme hein...
ensuite, beaucoup de fonctions sont tail-recursives, et sont donc compilees comme si elles n'etaient pas recursives (mais c'est pas le cas du Qsort)
pour le Qsort, si tu veux faire ca, alors tu dois avoir un tableau d'indexes ou tu stoques tes "bouts de tableaux pas encore tries" et c'est pas forcement mieux.