Métodos de Ordenamiento codificados en PHP
El código
realiza un Ordenamiento de datos numéricos haciendo uso del Método
de la Burbuja:
<?php
function burbuja($A,$n)
{
for($i=1;$i<$n;$i++)
{
for($j=0;$j<$n-$i;$j++)
{
if($A[$j]>$A[$j+1])
{$k=$A[$j+1];
$A[$j+1]=$A[$j]; $A[$j]=$k;}
}
}
return $A;
}
function main()
{
$VectorA=array(5,4,3,2,1);
$VectorB=burbuja($VectorA,sizeof($VectorA));
for($i=0;$i<sizeof($VectorB);$i++)
echo $VectorB[$i]."\n";
}
main();
?>
|
El código
realiza un Ordenamiento de datos numéricos haciendo uso del Método
Shell:
<?php
function ordenamientoShell($A,$n)
{
for($inc = 1 ; $inc<$n;$inc=$inc*3+1);
while ($inc > 0)
{
for ($i=$inc; $i < $n; $i++)
{
$j = $i;
$temp = $A[$i];
while (($j
>= $inc) && ($A[$j-$inc] > $temp))
{
$A[$j]
= $A[$j -
$inc];
$j = $j
- $inc;
}
$A[$j]
= $temp;
}
$inc/=
2;
}
return $A;
}
function main()
{
$VectorA=array(5,4,3,2,1);
$VectorB=ordenamientoShell($VectorA,sizeof($VectorA));
for($i=0;$i<sizeof($VectorB);$i++)
echo $VectorB[$i]."\n";
}
main();
?>
|
El código
realiza un Ordenamiento de datos numéricos haciendo uso del Método
Quicksort:
<?php
function quicksort($A, $izq, $der )
{
$i = $izq;
$j = $der;
$x = $A[ ($izq + $der) /2 ];
do{
while(
($A[$i] < $x) && ($j
<= $der) )
{
$i++;
}
while( ($x < $A[$j]) && ($j > $izq) )
{
$j--;
}
if( $i <= $j )
{
$aux = $A[$i]; $A[$i] = $A[$j]; $A[$j]
= $aux;
$i++;
$j--;
}
}while( $i <= $j );
if( $izq < $j )
quicksort(
$A, $izq, $j );
if( $i < $der )
quicksort(
$A, $i, $der );
return $A;
}
function main()
{
$VectorA=array(5,4,3,2,1);
$VectorB=quicksort($VectorA,0,sizeof($VectorA)-1);
for($i=0;$i<sizeof($VectorB);$i++)
echo $VectorB[$i]."\n";
}
main();
?>
|
El código
realiza un Ordenamiento de datos numéricos haciendo uso del Método
de Selección:
<?php
function selectionsort($A,$n)
{
for ($i=0; $i<$n-1; $i++)
{
$min=$i;
for($j=$i+1;
$j<$n; $j++)
if($A[$min]
> $A[$j])
$min=$j;
$aux=$A[$min];
$A[$min]=$A[$i];
$A[$i]=$aux ;
}
return $A;
}
function main()
{
$VectorA=array(5,4,3,2,1);
$VectorB=selectionsort($VectorA,sizeof($VectorA));
for($i=0;$i<sizeof($VectorB);$i++)
echo $VectorB[$i]."\n";
}
main();
?>
|
El código
realiza un Ordenamiento de datos numéricos haciendo uso del Método
de Inserción Directa:
<?php
function insercionDirecta($A,$n)
{
for ($i
= 1; $i < $n; $i++)
{
$v = $A[$i];
$j = $i
- 1;
while ($j
>= 0 && $A[$j] > $v)
{
$A[$j + 1] = $A[$j];
$j--;
}
$A[$j + 1] = $v;
}
return $A;
}
function main()
{
$VectorA=array(5,4,3,2,1);
$VectorB=insercionDirecta($VectorA,sizeof($VectorA));
for($i=0;$i<sizeof($VectorB);$i++)
echo $VectorB[$i]."\n";
}
main();
?>
|
El código
realiza un Ordenamiento de datos numéricos haciendo uso del Método
de Inserción Binaria:
<?php
function insercionBinaria($A,$n)
{
for($i=1;$i<$n;$i++)
{
$aux = $A[$i];
$izq=0;
$der=$i-1;
while($izq<=$der)
{
$m=(($izq+$der)/2);
if ($aux<$A[$m])
$der=$m-1;
else
$izq=$m+1;
}
$j=$i-1;
while($j>=$izq)
{
$A[$j+1]=$A[$j];
$j=$j-1;
}
$A[$izq]=$aux;
}
return $A;
}
function main()
{
$VectorA=array(5,4,3,2,1);
$VectorB=insercionBinaria($VectorA,sizeof($VectorA));
for($i=0;$i<sizeof($VectorB);$i++)
echo $VectorB[$i]."\n";
}
main();
?>
|
El código
realiza un Ordenamiento de datos numéricos haciendo uso del Método
Heapsort:
<?php
function heapsort($A,$n)
{
for($k=$n-1;$k>=0;$k--)
{
for($i=1;$i<=$k;$i++)
{
$item=$A[$i];
$j=$i/2;
while($j>0
&& $A[$j]<$item)
{
$A[$i]=$A[$j];
$i=$j;
$j=$j/2;
}
$A[$i]=$item;
}
$temp=$A[0];
$A[0]=$A[$k];
$A[$k]=$temp;
}
return $A;
}
function main()
{
$VectorA=array(5,4,3,2,1);
$VectorB=heapsort($VectorA,sizeof($VectorA));
for($i=0;$i<sizeof($VectorB);$i++)
echo $VectorB[$i]."\n";
}
main();
?>
|