Jump to content

ayuda con ordenamiento por insercion


Recommended Posts

hola amigos del foro.. pucha la vdd se muy poco de php.. y estoy un poco complicado para poder crear una aplicacion que el usuario ingresa un numero por ejemplo 12.. y se me tiene q generar un arreglo aleatorio de esos 12 elementos.. y yo despues haciendo clik en un icono que diga por ejemplo ordenar me los ordene por el metodo de insercion y me diga su tiempo de ejecucion q se demoro solo en ordenarlo.. se me ocurrio hacer esto:

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Documento sin título</title>

<script language="javascript" type="text/javascript">

function valida_numero(numero)

{

if (!/^([0-9])*$/.test(numero)){

return false;

}else{

return true;

}

}

 

 

function validar()

{

var form = document.form;

if(form.datos.value==0)

{

document.getElementById("div_datos").innerHTML="<font color='#CC0000'>El campo esta vacio, ingrese un numero porfavor</font>";

form.datos.value = "";

form.datos.focus();

return false;

}

 

if(valida_numero(form.datos.value)== false)

{

document.getElementById("div_datos").innerHTML="<font color='#CC0000'>Ingrese un numero entero porfavor</font>";

form.datos.value = "";

form.datos.focus();

return false;

}

 

form.submit();

}

 

</script>

 

</head>

 

<body>

<form action="procesa.php" method="post" name="form">

<h3>Ingrese el numero de cantidad de datos:</h3>

<input type="text" name="datos" />

<br />

<div id="div_datos"></div>

<input type="button" value="Enviar" title="Enviar" onclick="validar();" />

 

</form>

</body>

</html>

 

 

procesa.php

<?php

//print_r($_POST);

 

for( $i = 1 ; $i <= $_POST["datos"]; $i++ )

{

$d = rand(1,$_POST["datos"]);

 

echo $d."-";

 

}

 

 

 

 

 

 

?>

 

 

pero nose que mas hacer xd.. onda como pongo un boton en procesa.php y q me los arregle y me diga su tiempo de ejecucion.. porfa denme una ayudita plisss...

 

saludos....

Link to comment
Share on other sites

ve esto

 

<?php

$a = array("minimo"=>1, "maximo"=>4);

if(isset($_POST['n']) && (int)$_POST['n'] > 0){
    for($i=0;$i<=(int)$_POST['n'];$i++){
    $r = rand($a["minimo"], $a["maximo"]);
        $tuArreglo[$i] = $r;
    }
}
else{
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">Ingrese numeros: <input type="text" name="n" /><input type="submit" value="Enviar" /></form>';
}
?>

 

lo unico que cambias

 

$a = array("minimo"=>1, "maximo"=>4);

 

eso con eso deberian andar bien

Edited by alvaroxz
Link to comment
Share on other sites

ve esto

 

<?php

$a = array("minimo"=>1, "maximo"=>4);

if(isset($_POST['n']) && (int)$_POST['n'] > 0){
    for($i=0;$i<=(int)$_POST['n'];$i++){
    $r = rand($a["minimo"], $a["maximo"]);
        $tuArreglo[$i] = $r;
    }
}
else{
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">Ingrese numeros: <input type="text" name="n" /><input type="submit" value="Enviar" /></form>';
}
?>

 

lo unico que cambias

 

$a = array("minimo"=>1, "maximo"=>4);

 

eso con eso deberian andar bien

 

 

ehhh no cache naaa lo q pusiste arribaa.. alomejor yo me explique mal xd.. mira por ejemplo un usuario ingresa el numero 12.. tonces me genera aleatoriamente 12 numeros en un arreglo, es decir, por ejemplo 1-4-6-2-5-12-10-34-23-11-7-4.

eso lo pude hacer y me lo guarda en procesa.php.. con esta funcion.

 

<?php

//print_r($_POST);

 

for( $i = 1 ; $i <= $_POST["datos"]; $i++ )

{

$d = rand(1,$_POST["datos"]);

 

echo $d."-";

 

}

 

 

 

 

 

 

?>

 

el problema q ahora quiero q ya q me aparece el arreglo.. me salga un botton por ejemplo q diga ordenas y me los ordene por el metodo de insercion de menor a mayor.. q esa funcion ya la tengo.. y tambien q me diga el tiempo q se demoro en ordenar esos datos.. porq despues tengo q implementar otro algoritmo.. y saber cual es mas rapido o no...

 

hay algo en php q me cuente.. por ejemplo en C creo q esta una funcion clock algo asi nose xd.. en php hay algo similar?

 

saludoossss

 

grax.. pucha ahora tengo otro drama.. xd.. nose si se puede solucionar en php.. sino obligado a hacer en otro lenguaje

lo q pasa q el profe me pidio hacerlo hasta con 100 mill de datos xd.. onda q me ordene un array..

eso see me dijo q ibas a tar como 1 semana trabajando el PC.. onda si el usuario ingresa 50000.. me genera un array de 50000 elementos y me lo ordena.

pero el punto si ingreso por ejemplo 50000.. me tira el siguiente error:

Fatal error: Maximum execution time of 60 seconds exceeded in C:\AppServ\www\insercion\procesa.php on line 12

 

entonces nose si se puede solucionar eso.. sino obligado a intentar hacerlo en otro lenguaje C.. supungo q se podra

 

porfa si me pueden ayudar.. y que me recomiendan..

 

ahh y si le tiro 1mill de datos me tira este error

Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 34 bytes) in C:\AppServ\www\insercion\procesa.php on line 32

saludos

Edited by crinfo
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...