cs_jeca
Messages postés341Date d'inscriptionmercredi 17 juillet 2002StatutMembreDernière intervention14 juillet 201114 6 janv. 2003 à 18:30
Je suis tombé par hazard sur ton code, et en fouillant dans php, j'ai trouvé les fonctions array_slice et array_merge. Ci-dessous le résultat.
Tout ce qui concerne temps et itérations n'est là que pour comparer le temps d'éxécution avec ton code.
cs_booth
Messages postés220Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention13 juin 2005 26 déc. 2002 à 01:02
Ouaip c'est vrai, c'est une fonction qui a été faite en hâte, je m'en vais la modifier de suite...
Merci pour ta remarque Emilion
A+
;-)
Booth
emilion
Messages postés2Date d'inscriptiondimanche 10 février 2002StatutMembreDernière intervention22 décembre 2002 22 déc. 2002 à 15:48
L'idée est bonne mais pourquoi recopier la premiere partie du tableau dans temp1 ??
moi j'aurais fait un truc du style
pour insérer un élément à la ligne 10
- je ne touche pas au 10 premiers elements du tableau
- au 10 je sauvegarde l'élément 10 dans $tampon et j'insere $ligne
- de l'element 11 à la fin je copie $tampon dans $ligne, je sauvegarde l'élément i dans $tampon et j'insere $ligne a l'indice i
avantages:
pour insérer un élément a la position 5000 d'un tableau de 10000 on économise le traitement des 5000 premiers éléments
=> gain de temps
on utilise que 2 case mémoire
=> gain en mémoire
6 janv. 2003 à 18:30
Tout ce qui concerne temps et itérations n'est là que pour comparer le temps d'éxécution avec ton code.
<?php
function affiche($tableau)
{
for ($i = 0 ; $i < sizeof($tableau) ; $i++)
{
echo $tableau[$i] . "
";
}
echo "
";
}
function temps()
{
$heure = gettimeofday();
$tmp = ($heure['sec'].".".$heure['usec']);
return $tmp;
}
//-- debut programme --------------------
$test[0] = "a";
$test[1] = "b";
$test[2] = "c";
$test[3] = "d";
$test[4] = "e";
$test[5] = "f";
$nouveau = "HELLO";
$emplacement = 2;
$heureDeb = temps();
for ($i = 1 ; $i <= $iteration ; $i++)
{
$debut = array_slice($test, 0, $emplacement);
array_push($debut, $nouveau);
$fin = array_slice($test, $emplacement);
$resultat = array_merge($debut, $fin);
}
$heureFin = temps();
$php = $heureFin - $heureDeb;
affiche($test);
affiche($resultat);
echo "temps d'éxécution : " . $php . " secondes
";
?>
26 déc. 2002 à 01:02
Merci pour ta remarque Emilion
A+
;-)
Booth
22 déc. 2002 à 15:48
moi j'aurais fait un truc du style
pour insérer un élément à la ligne 10
- je ne touche pas au 10 premiers elements du tableau
- au 10 je sauvegarde l'élément 10 dans $tampon et j'insere $ligne
- de l'element 11 à la fin je copie $tampon dans $ligne, je sauvegarde l'élément i dans $tampon et j'insere $ligne a l'indice i
avantages:
pour insérer un élément a la position 5000 d'un tableau de 10000 on économise le traitement des 5000 premiers éléments
=> gain de temps
on utilise que 2 case mémoire
=> gain en mémoire
voila @+