i=$i
";*/
$copia=$v[$i];
$v[$i]=$v[$k];
$v[$k]=$copia;
}
function posizionapivot(&$v,$sx,$dx){
while($sx<$dx){
/*$n=count($v);
echo visualizza($v,$sx,$dx,"all'inizio del posizionamento del pivot $sx $dx");*/
$p=$sx;
while($v[$dx]>=$v[$p] && $p<$dx){
// echo"dx=$dx
";
$dx--;
}
// echo"p=$p dx=$dx
";
if($p!=$dx){
scambia($v,$p,$dx);
}
$p=$dx;
while($v[$sx]<=$v[$p] && $sx<$p){
// echo"sx=$sx
";
$sx++;
}
// echo"p=$p sx=$sx
";
if($p!=$sx){
scambia($v,$p,$sx);
}
/*echo "$sx $dx
";
$n=count($v);
echo visualizza($v,$sx,$dx,"alla fine de posizionamento del pivot: $sx $p $dx");*/
}
return $p;
}
function quicksort(&$v,$primo,$ultimo){
if($primo<$ultimo){
echo visualizza($v,$primo,$ultimo,"prima di muovere il pivot");
$p=posizionapivot($v,$primo,$ultimo);
echo visualizza($v,$primo,$ultimo,"dopo aver mosso il pivot");
echo"
pos pivot $p valore pivot:$v[$p]
"; quicksort($v,$primo,$p-1); quicksort($v,$p+1,$ultimo); }else{ echo visualizza($v,$primo,$ultimo,"quicksort non eseguito"); //echo "quicksort non eseguito
"; } } function visualizza($v,$da,$a,$titolo){ $n=count($v)-1; $html="$v[$k] | "; }else{ $html.="$v[$k] | "; } } $html.="