Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $vetor = array(1574,1281,1698,527,100,1507,982,1657,753,1074,1018,597,104,1235,651,1508,1854,
- 150,1318,106,84,894,1773,984,1605,1121,1475,442,1918,984,1132,720,845,892,1243,
- 1629,1516,1512,794,490,1365,1679,217,947,256,1946,170,89,1314,101,552,808,1573,
- 39,237,1477,738,839,1460,526,1754,1521,228,1761,279,387,1358,203,1467,1409,359,
- 274,653,640,450,1887,1282,1513,243,32);
- //inicializando vetor de 80 posições
- function swap(&$valor_1, &$valor_2) //trocar de variaveis
- {
- list($valor_1, $valor_2) = array($valor_2, $valor_1);
- }
- function separar(&$v, $inicio, $fim) //dividir o vetor
- {
- $pivo = $v[$inicio];
- $i = $inicio + 1;
- $j = $fim;
- while($i <= $j)
- {
- if($v[$i] <= $pivo)
- {
- $i++;
- }else if($pivo < $v[$j]){
- $j--;
- }else{
- swap($v[$i], $v[$j]);
- $i++;
- $j--;
- }
- }
- $v[$inicio] = $v[$j];
- $v[$j] = $pivo;
- return $j; //retorna a posição do pivô
- /*
- apos essa função temos dois sub-vetores, um com elementos nao ordenador menores que o pivô
- e outro com elementos nao alinhados maiores que o pivô
- */
- }
- function quicksort(&$v, $inicio, $fim) //ordenar
- {
- if($inicio < $fim)
- {
- $indice = separar($v, $inicio, $fim);
- //chamada recursiva para ordenar o vetor antes e depois do pivô
- quicksort($v, $inicio, ($indice-1));
- quicksort($v, ($indice+1), $fim);
- }
- }
- quicksort($vetor, 0, count($vetor)- 1); //passa para a função quicksort o vetor, o inicio e o fim
- print_r($vetor); //imprimi o vetor ja ordenado
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement