The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Archivos en la Categoría: PHP

Métodos de Ordenamiento Hechos en PHP


PHP (PHP Hypertext Pre-processor) es un lenguaje de programación usado en esencia para la creación de páginas web dinámicas.
El objetivo de este post es entregar una serie de métodos de ordenamiento codificados en PHP como se ha venido haciendo en otros lenguajes de programación. Seria buena idea evaluar el rendimiento con cada uno de los códigos y analizar en que casos es mejor cada uno de ellos, eso les dejo a cuenta suya xD.

Método Burbuja: Ordenamiento Burbuja.php
Método shell: Ordenamiento Shell.php
Método quick sort: Ordenamiento por método Quick Sort.php
Método Inserción Directa: Ordenamiento por inserción Directa.php
Método Inserción Binaria: Ordenamiento por inserción Binaria.php
Método de Selección: Ordenamiento método Selección.php
Método Heap Sort: Ordenamiento método Heap Sort.php

Código PHP – Ordenamiento Shell


El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en PHP.

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();
?>

Código PHP – Ordenamiento por Selección


El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en PHP.

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();
?>

Código PHP – Ordenamiento Quicksort


El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en PHP.

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();
?>

Código PHP – Ordenamiento por Inserción Directa


El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en PHP.

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();
?>

Código PHP – Ordenamiento por Inserción Binaria


El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en PHP.

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();
?>

Código PHP – Ordenamiento Heapsort


El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en PHP.

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();
?>

Código PHP – Ordenamiento Burbuja


El siguiente post pertenece al topic: 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();
?>
A %d blogueros les gusta esto: