Mergesort - Bas-plus rapide que de Haut en Bas?

Je viens de lire "les Algorithmes, 4e Ed" par Sedgewick & Wayne, et le long de la manière dont j'ai été l'implémentation des algorithmes discuté en JavaScript.

J'ai récemment pris la mergesort les exemples fournis dans le livre de comparer top-down et bottom-up des approches... mais je trouve que bottom-up est en cours d'exécution plus rapide (je pense). Voir mon analyse sur mon blog.
- http://www.akawebdesign.com/2012/04/13/javascript-mergesort-top-down-vs-bottom-up/

Je n'ai pas été en mesure de trouver toutes les discussions que dit l'une des méthodes de mergesort devrait être plus rapide que l'autre. Est mon de mise en œuvre (ou l'analyse) imparfait?

Note: mon analyse des mesures de l'itératif boucles de l'algorithme, pas strictement le tableau compare/se déplace. C'est peut-être défectueux ou hors de propos?

EDIT: Mon analyse n'a pas réellement le temps de la vitesse, de sorte que ma déclaration au sujet de courir "vite" est un peu trompeur. Je suis suivi de l' "itérations" par le biais de la méthode récursive (top-down) et les boucles for (bottom-up) et bottom-up s'affiche pour utiliser moins d'itérations.

  • Les compare et les échanges sont les principaux éléments de coût dans le tri de l'analyse, je suis à peu près sûr.
  • oui, ils devraient normalement être les éléments à analyser lors de la comparaison des différents algorithmes de tri. Mais dans ce cas, ils devraient être les mêmes... elles sont de la même algorithme, donc ce n'est pas ce que je suis après. Ma mise en œuvre reflète ce qui est dans le livre... est-il possible que bottom-up utilise moins de boucles au-dessus/dans le tableau, mais a le même nombre de compare/se déplace?
  • Je vois votre point de vue... mais ceux qui ne contribuent pas à la disparité dans mon nombre d'itérations. Si vous regardez mon code, j'ai seulement suivi les itérations à l'intérieur de l'récursive et itérative des boucles. Les mathématiques.floor() n'a rien à faire avec elle - je ne suis pas en utilisant la base de l'analyse
  • Peut-être "courir plus vite" dans mon premier post n'est pas correct. Je suis la recherche bottom-up passe en boucle sur le tableau de moins en moins de temps, mais qui n'ont rien à voir avec la "vitesse"
  • Existe-il des différences lorsque vous le tri d'un tableau dont la taille est exactement une puissance de 2?
  • Oui... en utilisant un tableau de taille 1024, de haut en bas a 22,527 "itérations" tout en bas a 21,513 "itérations".

InformationsquelleAutor arthurakay | 2012-04-14