begin process at 2012 02 10 21:29:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Complexité de l'algorithme de Tri Fusion


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Complexité de l'algorithme de Tri Fusion

dimanche 25 mars 2007 à 14:51:46 | Complexité de l'algorithme de Tri Fusion

ousin

Salut tout le monde, je voudrais de l'aide pour demontrer mathematiquement en urilisant la resolution des reccurences que la complexité du Tri Fusion est: T(n) = O(nlogn); Merci

ousin
dimanche 25 mars 2007 à 17:09:23 | Re : Complexité de l'algorithme de Tri Fusion

acx01b

Réponse acceptée !
salut le logn (log en base 2 a prori!) c'est le nombre de fois que tu découpes ta liste à trier en 2: - d'abord tu découpes en 2 morceaux - puis tu découpes chaque morceau en 2 morceaux ce qui fait 2^2 morceaux - puis tu découpes chaque morceau en 2 morceaux ce qui fait 2^3 morceaux - puis tu découpes chaque morceau en 2 morceaux ce qui fait 2^4 morceaux - ... - puis tu découpes chaque morceau en 2 morceaux ce qui fait 2^(logn) morceaux --> mais là t'as des morceaux de taille 1 ou 0 (qui sont faciles à trier) puis tu dépiles la chaine récursive: en concatènant les morceaux 2 à 2 - de tes 2^(logn) morceaux de taile 1 tu fais 2^(logn - 1) morceaux de taille 2 - de tes 2^(logn - 1) morceaux de taile 2 tu fais 2^(logn - 2) morceaux de taille 2^2 - de tes 2^(logn - 2) morceaux de taile 2^2 tu de fais 2^(logn - 1) morceaux de taille 2^3 - ... - avec tes 4 morceaux de taile n/4 tu fais 2 morceaux de taille n/2 - avec tes 2 morceaux de taile n/2 tu fais 1 morceau de taille n si on considére que empiler les appels de fonctions ne coûte rien, on voit que tout le travail est fait au moment de dépiler: à chaque fois on doit traiter les n éléments séparés dans 2^i morceaux pour les rassembler en morceaux 2 fois plus gros, donc obtenir les n éléments séparés dans 2^(i-1) morceaux, ce qui coùte quelque chose de proportionnel au nombre d'éléments: n et ça logn fois, d'où finalement le nlogn j'espère que ma réponse te vas, a+
dimanche 25 mars 2007 à 18:49:30 | Re : Complexité de l'algorithme de Tri Fusion

ousin

Merci, je comprend mieux mais y a une phrase qui me derrange un peu: puis    tu découpes chaque morceau en 2 morceaux ce qui fait 2^(logn) morceaux;

est-ce une egalité si oui pourquoi? merci

ousin
dimanche 25 mars 2007 à 19:10:54 | Re : Complexité de l'algorithme de Tri Fusion

acx01b

salut disons que j'ai un tableau avec 32 éléments log en base 2 de 32 = 5 (car 2^5 = 32) je découpe une fois en 2: j'ai 2 morceaux de 16 éléments je découpe encore une fois en 2: j'ai 2^2 morceaux de 8 éléments je découpe encore une fois en 2: j'ai 2^3 morceaux de 4 éléments je découpe encore une fois en 2: j'ai 2^4 morceaux de 2 éléments je découpe encore une fois en 2: j'ai 2^5 morceaux de 1 éléments mes morceaux de 1 élément sont tous faciles à trier :) 2^5 = 2^(log 32) = 32 --> j'ai découpé logn fois mes n morceaux pour obtenir 2^(logn) = n morceaux de taille 1 puis je concatène logn fois mes morceaux 2 à 2 pour obtenir mon tableau complétement trié
dimanche 25 mars 2007 à 19:46:16 | Re : Complexité de l'algorithme de Tri Fusion

ousin

Oui, merci! je comprend mais là c dans le cas où n est pair mais de maniere generale a-ton l'egalité? Je crois que le nombre de morceaux est inferieur ou egal  à logn prenons par exemple n=3

ousin
dimanche 25 mars 2007 à 20:23:34 | Re : Complexité de l'algorithme de Tri Fusion

acx01b

si n = 3 tu découpes en 2 ça te fait un morceau à 2 éléments, puis un morceau à 1 éléments, puis tu redécoupes encore en 2, ça te fait 3 morceaux à 1 élément et 1 morceau à un élément et là trier chaque morceau est trivial de toute façon quand on cherche la complexité on différencie pas logn-1, log(n-1), 2*n^5 et 45*n^3, on cherche plutôt un "odre de complexité"
dimanche 25 mars 2007 à 20:24:17 | Re : Complexité de l'algorithme de Tri Fusion

acx01b

pardon j'ai mal écrit: si n = 3 tu découpes en 2 ça te fait un morceau à 2 éléments et un morceau à 1 éléments, puis tu redécoupes encore en 2, ça te fait 3 morceaux à 1 élément et 1 morceau à zéro élément et là trier chaque morceau est trivial
lundi 26 mars 2007 à 12:56:37 | Re : Complexité de l'algorithme de Tri Fusion

ousin

Merci beaucoup je vois bien

ousin


Cette discussion est classée dans : tri, algorithme, fusion, complexité


Répondre à ce message

Sujets en rapport avec ce message

Questions urgentes en Algorithme et Complexité [ par nostalgieing ] bonjour j'ai une ambiguté en algorithme et complexité et j'ai quelques questions à poser et j'ai besoin de vos aide c'est urgent 1-quelle est la met TRI FUSION avec des Threads [ par ariabbas ] BONJOUR, j'ai un problème et je recherche une solution . Ecrire un programmae implementant une VERSION DU TRI-FUSION à l'aide des THREAD en C. Le Exercice en Algorithme et Complexité [ par nostalgieing ] Bonjour j'ai un exercice en algorithme et complexité et j'ai pas pu le resoudre et j'espere que vous pouvez m'aider l'exercice est le suivant: Donn projet en tri ( tous les tris) et leur complexité [ par kimode ] bonjour j'ai un projet sur la complexité des tris et faire la differance dans un graphe en excel est ce que quelqun peut m'aider et mercii algorithme de tri hoare [ par alinformatik ] au cours des travaux pratiques en module de système d'exploitation, pour comprendre la synchronisation des processus sous linux on nous a demandé d'éc Help :: Tri-Fusion itératif !! [ par daarkon666 ] Salut !! Je planche actuellement sur une version itérative du Tri-Fusion, et y a un pb : je ne vois pas comment écrire la fonction fusion qui se charg Pb de tri et taille de tableaux [ par daarkon666 ] Salut !!Je viens de terminer le tri/fusion itératif (et d'autres algos de tri, pr un projet info de fac) en C, et je suis soumis à un pb auss ibien so algorithme de gauss et decomposition LU [ par speedamine ] bonjour a tous.je voudrai avoir des algorithmes ,ecrits en borland pascal,suivants:methode de gauss ordinaire pour la resolution d'un systeme .la deco Algorithme conversion Noms longs <-> Noms courts [ par franck406 ] Je suis à la recherche de l'algorithme qui permet d'obtenir un nom fichier court à partir d'un nom de fichier long comme le fait Dos. Je dois écrire u j'utilise qsort pour le tri mais il faut créer des fonctions globales [ par djmix73 ] Comment fait on pour créer des fonctions globale avec visual c++6 pour quel se mette dans le dossier globale?


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,505 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales