Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Recursão

Recommended Posts

Bom dia pessoal.

 

Tenho o codigo abaixo que é a ordenação de vetor pelo metodo de bolha.

Gostaria de fazer ele de novo, mas usando recursão. Ou seja, pelo metodo recursivo.

 

Alguem poderia me ajudar?

 

 

<?php
  function bubble_sort($arr)
  {
   $size = count($arr);
   for ($i=0; $i<$size; $i++)
   {
    for ($j=0; $j<$size-1-$i; $j++)
    {
     if ($arr[$j+1] < $arr[$j])
     {
      $tmp = $arr[$j];
      $arr[$j] = $arr[$j+1];
      $arr[$j+1] = $tmp;
     }
    }
   }
   return $arr;
  }
  $items = array(31, 41, 59, 26, 41, 58);
  print "<pre>";
  print_r(bubble_sort( $items ));
  print "</pre>";
 
 ?>
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, e qual sua dúvida ?

 

achei um pdf bacana da unicamp com os algoritmos e codigos:

http://www.ic.unicamp.br/~ra069320/PED/MC102/1s2008/Apostilas/Cap15.pdf

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse pdf que eu coloquei, eles mesmos dizem que não é aconselhável fazer recursão para isso.

Eu também não posso postar o código para vc, pois isso te atrapalharia.

 

 

Vc tem que começar pelo entendimento do algoritmo, e pelo entendimento da recursão.

Vc fez esse código acima sozinho ? ou vc pegou de algum lugar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei na net.

Tentei a recursão assim:

 

<?php
function ordena_recursiva($array)
{
 for ($i=0; $i<count($array)-1; $i++)
 {
   recursao($array, $i, count($array));
 }
 
   return $array;
}
 
function recursao($array, $i, $count)
{
  for ($j=$i+1; $j<$count-1; $j++)
  {
 if($array[$i] >= $array[$j])
 {
   $aux=$array[$j];
   $array[$j]=$array[$i];
   $array[$i]=$aux;
 } 
  }
  return $array[$i];
}
$array= array(31, 41, 59, 26, 41, 58);
print "<pre>";
print_r(ordena_recursiva($array));
print "</pre>";
?>    

Mas não esta ordenando

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.