2011-03-04 5 views
0

J'ai travaillé sur un programme qui compare les temps de fonctionnement des différents algorithmes de tri en C++ (jusqu'à présent, j'ai fait le tri du tas, le tri à bulles, le tri par insertion et le tri des sélections). Pour calculer les temps j'utilise des tableaux de différentes tailles, c'est-à-dire 10000, 100000, 500000, 1000000 et 10000000.Tri des très gros tableaux un problème?

Lorsque je l'exécute, tout fonctionne bien jusqu'à ce que je commence à tester les plus grandes matrices. Pour les 3 premières baies, j'obtiens les résultats attendus, mais le programme continue à se bloquer quand je cours les 2 dernières. Donc ma question est, si le problème est le code ne tomberait-il pas tous? pourrait-il être un problème de gestion de la mémoire? Toute aide ou idée sur ce qui pourrait être mauvais sera grandement appréciée.

Ce http://pastebin.com/HCakminT est mon code pour la classe de pilotes qui appelle les autres, dans cet exemple particulier le tri de tas et le tri à bulles.

Merci :)

+0

Plus d'informations sur l'erreur ou le code seraient utiles. Un manque de mémoire est possible, fuites de mémoire, débordement d'entier ... – Dave

+0

Je viens de mettre un lien vers mon code – Jay

Répondre

1

sans voir le programme, il est difficile de prédire exactement ce qui se passe. Mais la première question est simple. Il y a plusieurs façons dont votre programme pourrait être mauvais, et certains d'entre eux causeraient un crash seulement avec 1.000.000 éléments ou plus. Par exemple, si vous avez codé en dur une allocation de mémoire de 999.999 éléments, vous ne verrez pas un crash avec 500.000 éléments.

+0

Ceci ici [link] (http://pastebin.com/HCakminT) est ma méthode principale qui appelle les autres classes . Dans cet exemple particulier, le tri à bulles et le tri par tas. Je lis et écris dans un fichier texte. Je ne pense pas que cela limite la mémoire allouée ou le fait? – Jay