Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scilab 1.61 KB | None | 0 0
  1. <?php
  2.     $vetor = array(1574,1281,1698,527,100,1507,982,1657,753,1074,1018,597,104,1235,651,1508,1854,
  3.                     150,1318,106,84,894,1773,984,1605,1121,1475,442,1918,984,1132,720,845,892,1243,
  4.                     1629,1516,1512,794,490,1365,1679,217,947,256,1946,170,89,1314,101,552,808,1573,
  5.                     39,237,1477,738,839,1460,526,1754,1521,228,1761,279,387,1358,203,1467,1409,359,
  6.                     274,653,640,450,1887,1282,1513,243,32);
  7.         //inicializando vetor de 80 posições
  8.        
  9.     function swap(&$valor_1, &$valor_2) //trocar de variaveis
  10.         {
  11.             list($valor_1, $valor_2) = array($valor_2, $valor_1);
  12.         }
  13.        
  14.     function separar(&$v, $inicio, $fim) //dividir o vetor
  15.         {
  16.             $pivo = $v[$inicio];
  17.             $i = $inicio + 1;
  18.             $j = $fim;
  19.             while($i <= $j)
  20.                 {
  21.                     if($v[$i] <= $pivo)
  22.                         {
  23.                             $i++;
  24.                         }else if($pivo < $v[$j]){
  25.                             $j--;
  26.                             }else{
  27.                                 swap($v[$i], $v[$j]);
  28.                                 $i++;
  29.                                 $j--;
  30.                             }
  31.                 }
  32.             $v[$inicio]  = $v[$j];
  33.             $v[$j] = $pivo;
  34.             return $j;  //retorna a posição do pivô
  35.             /*
  36.             apos essa função temos dois sub-vetores, um com elementos nao ordenador menores que o pivô
  37.             e outro com elementos nao alinhados maiores que o pivô
  38.             */
  39.         }
  40.        
  41.     function quicksort(&$v, $inicio, $fim) //ordenar
  42.         {
  43.             if($inicio < $fim)
  44.                 {
  45.                     $indice = separar($v, $inicio, $fim);
  46.                     //chamada recursiva para ordenar o vetor antes e depois do pivô
  47.                     quicksort($v, $inicio, ($indice-1));
  48.                     quicksort($v, ($indice+1), $fim);
  49.                 }
  50.         }
  51.    
  52.     quicksort($vetor, 0, count($vetor)- 1); //passa para a função quicksort o vetor, o inicio e o fim
  53.     print_r($vetor); //imprimi o vetor ja ordenado
  54. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement