Skip to content

Instantly share code, notes, and snippets.

@matismasters
Created September 3, 2011 19:18
Show Gist options
  • Save matismasters/1191634 to your computer and use it in GitHub Desktop.
Save matismasters/1191634 to your computer and use it in GitHub Desktop.
<?php
function devolver_ordinal($elem, $ordenados){
for($x=0;$x<count($ordenados);$x++){
$ordenado = $ordenados[$x];
if($elem == $ordenado){
return $x;
}
}
return 999999;
}
function devolver_menor_ordinal($elementos, $ordenados){
$menor_ordinal=array(0,devolver_ordinal($elementos[0],$ordenados)); // [ "el indice donde esta", "el ordinal correspondiente"]
for($x=0;$x<count($elementos);$x++){
$elemento = $elementos[$x];
$ordinal_elemento = devolver_ordinal($elemento,$ordenados);
if($menor_ordinal[1] > $ordinal_elemento){
$menor_ordinal[0] = $x;
$menor_ordinal[1] = $ordinal_elemento;
}
}
return $menor_ordinal;
}
function borrar_elemento($ar,$indice){
$nar = array();
for($x=0;$x<count($ar);$x++){
if($x != $indice) {
array_push($nar, $ar[$x]);
}
}
return $nar;
}
function ordenar_personalizado($desordenados, $ordenados){
$elementos_ordenados= array();
while(count($desordenados) > 0){
// Busco el que devuelve el menor ordinal
$menor_ordinal = devolver_menor_ordinal($desordenados, $ordenados);
// Paso el elemento a los elementos ordenados
array_push($elementos_ordenados, $desordenados[$menor_ordinal[0]]);
// Borro el elemento del array de desordenados
$desordenados = borrar_elemento($desordenados,$menor_ordinal[0]);
}
return $elementos_ordenados;
}
function generar_alfabeto(){
$alfabeto = array();
for($x=65;$x<=90;$x++){
array_push($alfabeto, chr($x));
array_push($alfabeto, chr($x+32));
}
return $alfabeto;
}
function generar_alfabeto_alrevez(){
$alfabeto = array();
for($x=90;$x>=65;$x--){
array_push($alfabeto, chr($x));
array_push($alfabeto, chr($x+32));
}
return $alfabeto;
}
function ordenar_alfabeticamente($desordenados){
$ordenados = generar_alfabeto();
$elementos_ordenados = ordenar_personalizado($desordenados,$ordenados);
echo "<div><h1>Alfabeticamente</h1><label>Elementos desordenados:</label><div>";
var_dump($desordenados);
echo "</div><label>Elementos ordenados:</label><div>";
var_dump($elementos_ordenados);
echo "</div></div>";
}
function ordenar_alfabeticamente_alrevez($desordenados){
$ordenados = generar_alfabeto_alrevez();
$elementos_ordenados = ordenar_personalizado($desordenados,$ordenados);
echo "<div><h1>Alfabeticamente alrevez</h1><label>Elementos desordenados:</label><div>";
var_dump($desordenados);
echo "</div><label>Elementos ordenados:</label><div>";
var_dump($elementos_ordenados);
echo "</div></div>";
}
function ordenar_vocales_primero($desordenados){
$ordenados = array("a","e","i","o","u");
$elementos_ordenados = ordenar_personalizado($desordenados,$ordenados);
echo "<div><h1>Vocales primero</h1><label>Elementos desordenados:</label><div>";
var_dump($desordenados);
echo "</div><label>Elementos ordenados:</label><div>";
var_dump($elementos_ordenados);
echo "</div></div>";
}
$param = array("a","z","b","y","h","i","p","q");
ordenar_alfabeticamente($param);
ordenar_alfabeticamente_alrevez($param);
ordenar_vocales_primero($param);
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment