Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[Concours] Algorithme de tri

Volcan
Avatar de Sékiltoyai
  • Age : 24 ans
  • Messages : 1065
  • Inscrit : 19 Septembre 2006
  Lien vers ce message 23 Octobre 2006, 9:31

Reprise du dernier message

En fait, je viens de me rendre compte que, selon si je fais sort puis ma fonction ou le contraire, je suis aussi rapide que sort ou bien trois fois plus lent... :-/
Bon, je finis d'optimiser et je t'envoie cela :-/


http://www.phpfrance.com : Support francophone PHP et Web.
 
Volcan
Avatar de Eagle
  • Age : 34 ans
  • Messages : 1105
  • Inscrit : 22 Janvier 2005
  Lien vers ce message 23 Octobre 2006, 9:56
Si tu utilises le même tableau pour les deux tri c'est normal, penses qu'un tableau déjà trié est plus rapide à trier (heum) qu'un tableau non trié ^^

Je te conseille donc de recréer un autre tableau pour faire ce test de manière correct. Et toujours de faire plusieurs tests d'affilée pour avoir une moyenne.


Dans les hauteurs des cieux, par delà les nuages et les sommets enneigés, l'aigle majestueux survole la terre...

Kosmos & Eagle homepage ^^
 
Volcan
Avatar de Sékiltoyai
  • Age : 24 ans
  • Messages : 1065
  • Inscrit : 19 Septembre 2006
  Lien vers ce message 23 Octobre 2006, 10:06
En fait, j'ai fait print_r(fsb_tri($test)); puis sort($test);print_r($test); donc le tableau n'était pas trié quand il passait sort(). Après, peut être que le processeur avait une impression de déjà vu, ...


http://www.phpfrance.com : Support francophone PHP et Web.
 
Chef du projet FSB
Avatar de Genova
  • Age : 26 ans
  • Messages : 14944
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 23 Octobre 2006, 10:09
Citation (Eagle)
Si tu utilises le même tableau pour les deux tri c'est normal, penses qu'un tableau déjà trié est plus rapide à trier (heum) qu'un tableau non trié ^^

Pas sur, certains algos de tri sont justement plus lent sur des tableaux déjà triés ;) (par exemple : http://fr.wikipedia.org/wiki/Tri_rapide
Citation (tri par casier)
Si le pivot est correctement choisi à chaque étape, c'est une des méthodes de tri les plus rapides dans le cas moyen (entrée triée dans un ordre aléatoire uniformément distribué), avec une complexité algorithmique en O(n ln(n)). Cette complexité peut se dégrader en O(n²) dans le pire des cas, qui se trouve être le cas où les éléments sont déjà dans l'ordre. Comme ce pire cas est finalement assez courant (tri de listes quasiment déjà triées), on se ramène parfois au cas moyen en appliquant une permutation aléatoire uniformément distribuée sur les entrées.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Volcan
Avatar de burster
  • Age : 2212 ans
  • Messages : 1685
  • Inscrit : 19 Mars 2005
  Lien vers ce message 23 Octobre 2006, 11:47
Pas le droit à sort() ;)


e-Traker
 
VIP
Avatar de Dravick
  • Age : 22 ans
  • Messages : 523
  • Inscrit : 04 Mars 2005
  Lien vers ce message 23 Octobre 2006, 18:04
Moi qui pensait que le flood avait une limite...


"Take thy beak from out my heart, and take thy form from off my door!"
[list]Quoth the Raven, "Nevermore."[/list]
 
Hors ligne mob Masculin
Equipe de support
Avatar de mob
  • Age : 21 ans
  • Messages : 2034
  • Inscrit : 10 Septembre 2005
  Lien vers ce message 23 Octobre 2006, 20:20
ce qui me fait ch*** c'est que j'essai d'implementer quicksort mais que j'ai quand meme des "maximum time of ..." . et je n'ai pas de boucle infini puisqu'en diminuant la taille du tableau le tri marche parfaitement :s
 
Chef du projet FSB
Avatar de Genova
  • Age : 26 ans
  • Messages : 14944
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 23 Octobre 2006, 20:24
Ton algo prend combien de lignes / fonctions ?


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Volcan
Avatar de Sékiltoyai
  • Age : 24 ans
  • Messages : 1065
  • Inscrit : 19 Septembre 2006
  Lien vers ce message 23 Octobre 2006, 20:33
et avec un tableau de cb d'éléments ?


http://www.phpfrance.com : Support francophone PHP et Web.
 
Equipe des MODS
Avatar de Grummfy
  • Age : 27 ans
  • Messages : 7007
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 23 Octobre 2006, 20:47
yoursef tus ais changer la limite de temps regarde du coté de init_set()
et comme j'ai déjà rendu ma copie je peux tester sur mon ordi (puisque on ne peux modifier et que même si on pouvait je en le ferait pas)


"La gravité est le bonheur des imbéciles" Charles de Montesquieu > "T'as raison, L'apesanteur c'est plus rigolo" Hébus de Phalompe (Troll de Troy)
Mods fsb2 - Grummfy's project - Zf Planet
 
Volcan
Avatar de Sékiltoyai
  • Age : 24 ans
  • Messages : 1065
  • Inscrit : 19 Septembre 2006
  Lien vers ce message 23 Octobre 2006, 20:53
ouais, mais bon, si tu prend pas des tableaux de 2000 éléments, et que tu n'as pas un timeout de 2 secondes, théoriquement, ca doit pouvoir passer avec n'importe quel ordinateur :-/


http://www.phpfrance.com : Support francophone PHP et Web.
 
Hors ligne mob Masculin
Equipe de support
Avatar de mob
  • Age : 21 ans
  • Messages : 2034
  • Inscrit : 10 Septembre 2005
  Lien vers ce message 23 Octobre 2006, 21:26
J'ai testé avec deux tableaux, un de 500 elements (ça passe) et avec un tableau de 5000 elements, et la ça foire

l'algo prends la fonction principale et une de plus pour choisir un pivot (quicksort)

D'accord grummfy des que je me connecte a msn (j'ai des problemes avec en ce moment ... ) je te donne le code pour le tester
 
Equipe des MODS
Avatar de Grummfy
  • Age : 27 ans
  • Messages : 7007
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 23 Octobre 2006, 21:30
ben y a toujours mail via gmail ...


"La gravité est le bonheur des imbéciles" Charles de Montesquieu > "T'as raison, L'apesanteur c'est plus rigolo" Hébus de Phalompe (Troll de Troy)
Mods fsb2 - Grummfy's project - Zf Planet
 
Volcan
Avatar de Sékiltoyai
  • Age : 24 ans
  • Messages : 1065
  • Inscrit : 19 Septembre 2006
  Lien vers ce message 23 Octobre 2006, 21:32
tu peux poster le code du tableau ? Ca m'évitera de l'écrire :D


http://www.phpfrance.com : Support francophone PHP et Web.
 
Equipe des MODS
Avatar de Grummfy
  • Age : 27 ans
  • Messages : 7007
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 23 Octobre 2006, 21:34
rhoo
perso je fait ceci :
function remplirarrayint($taille)
{
	$arr = array();
	for ($i =0; $i < $taille; $i++)
		$arr[$i] = mt_rand(-500000,500000);
	return $arr;
}


avec $taille le nombre d'entrée .....


"La gravité est le bonheur des imbéciles" Charles de Montesquieu > "T'as raison, L'apesanteur c'est plus rigolo" Hébus de Phalompe (Troll de Troy)
Mods fsb2 - Grummfy's project - Zf Planet
 
Volcan
Avatar de Sékiltoyai
  • Age : 24 ans
  • Messages : 1065
  • Inscrit : 19 Septembre 2006
  Lien vers ce message 23 Octobre 2006, 21:35
quel con, pourquoi je n'y ai pas pensé ?


http://www.phpfrance.com : Support francophone PHP et Web.
 
Répondre


.