Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Chiarelotto

Trabalho facul

Recommended Posts

preciso usar os seguintes metodos:

 

Método da Bolha

Quicksort

Inserção Direta

Shellsort

Seleção Direta

Heapsort

 

o exercicio e, colocar a numeração de 1 a 499.

mostrar os dados de forma aleatoria;

mostrar o vetor ordenado

mostrar o vetor em ordenação decrescente

 

e tambem preciso mostrar o numero de comparações, numero de trocas e o tempo gasto pelo sistema.

 

e possivel fazer com o php??

 

qual caminho devo seguir?

Compartilhar este post


Link para o post
Compartilhar em outros sites

e tambem preciso mostrar o numero de comparações, numero de trocas e o tempo gasto pelo sistema.

ok, e qual a dúvida ?

 

 

e possivel fazer com o php??

sim, é possível fazer com qualquer linguagem de programação.

 

 

qual caminho devo seguir?

pesquise pelos algoritmos e monte o script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eu crio um array de 1 ate 499 sem precisar ser:

1,2,3,4,5,6....,499???

faça um loop.

 

use um for() com uma variavel contadora começando no 1, e indo até < que 500

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz assim, mais nao deu certo.

 

<?php
function BubbleSort( &$items ) {
   $temp = "";
   $size = count( $items );
   for( $i = 1; $i < $size; $i++ ) {
        for( $j = 0; $j < $size - $i; $j++ ) {
             if( $items[$j+1] < $items[$j] ) {
                  $temp = $items[$j];
                  $items[$j] = $items[$j+1];
                  $items[$j+1] = $temp;
             }
        }
   }
}

for($itens = 1; $itens < 500; $itens++ ){
var_dump($items );//Imprimindo Array Atual

BubbleSort( $items );//Ordenando o Array

var_dump($items );//Imprimindo Array Ordenado
}
?>

 

e o resultado foi a repetição da palavra NULL um monte de vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não amigo.. primeiro você faz o array.

 

só depois, fora do loop q fez o array, é q você chama o BubbleSort.

 

da forma q você fez ai, você ta chamando o método de ordenação 499 vezes !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não amigo.. primeiro você faz o array.

 

só depois, fora do loop q fez o array, é q você chama o BubbleSort.

 

da forma q você fez ai, você ta chamando o método de ordenação 499 vezes !!

como assim?

nao entendi o que você falou

Compartilhar este post


Link para o post
Compartilhar em outros sites
$arr = Array();
for($i = 1; $i < 500; $i++ ){
   $arr[] = $i;//criando o array
}

shuffle( $arr ); //desordenando o array
BubbleSort( $arr );//Ordenando o Array

Compartilhar este post


Link para o post
Compartilhar em outros sites

usando isso que tu me passou, ele nao deu resultado algum.

 

entao fiz assim e deu resultado, so que ambos ficaram ordenados, o que devo fazer para um ficar desordenado?

 

$arr = Array();
for($itens = 1; $itens < 6; $itens++ ){
   $arr[] = $itens;//criando o array
}
var_dump($arr);
echo"<br>";
shuffle( $arr ); //desordenando o array
BubbleSort( $arr );//Ordenando o Array
var_dump($arr);
echo"<br>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque o var_dump() do desordenado depois do shuffle

 

shuffle( $arr ); //desordenando o array
var_dump($arr);
echo"<br>";


BubbleSort( $arr );//Ordenando o Array
var_dump($arr);
echo"<br>";

cara.. entenda oq o script faz..

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara obrigado.

ainda estou aprendendo sobre array e estou gostando muito.

 

uma duvida agora na hora de mostrar o resultado.

 

ele agora apresenta assim:

 

array(5) { [0]=> int(5) [1]=> int(4) [2]=> int(3) [3]=> int(2) [4]=> int(1) } 

 

tem como mostrar por exemplo:

0 = 5

1 = 4

2 = 3

3 = 2

4 = 1

 

sem esse array(5) e [0]=> int(5)

 

como faria esse tratamento para visualizar os dados do array?

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera,

preciso tambem organizar o array aleatoriamente.

 

pesquisei e achei o array_rand so que nao funcionou usando a função.

 

array_rand( $arr ); //desordenando o array
var_dump($arr);
echo"<br>";

 

como utilizo, pois preciso organizar aleatoreamente, normal e decrescente.

decresente ok, normal ok, agora falta so aleatoreamente.

 

att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o shuffle que usei no outro trecho faz isso, você não notou ?

 

você só não conseguiu usar o array_rand() porque você não usou o retorno dele, qndo tiver dúvidas com uma função, consulte o manual:

http://php.net/array_rand

 

porém leia bem a descrição:

Picks one or more random entries out of an array, and returns the key (or keys) of the random entries.

no seu caso, use o shuffle mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oq significa isso ?

 

acho que você esteja falando de "Análise Combinatória".. ai você só precisa estudar Matemática do Ensino Médio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

william vlw, estou quase conseguindo aqui.

 

outra coisa ate perguntei ontem.

 

o resultado agora mostra assim:

array(5) { [0]=> int(4) [1]=> int(2) [2]=> int(5) [3]=> int(1) [4]=> int(3) } 

como faço para mostrar sem o int.

ficando [0] => 4

[1] => 2

 

e assim por diante???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diego Chiarelotto,

 

Esses métodos são mais fáceis de fazer em C, mas se você fizer questão de ser em PHP...

 

O número de comparações é mesma coisa que você colocar um contador, lembre-se de cria-lo fora das repetições

e atribuir a cada vez que ele passa pelo if, assim você consegue contar.

 

Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

como faço para mostrar sem o int.

ficando [0] => 4

[1] => 2

 

e assim por diante???

 

Use print_r no lugar de var_dump.


echo '<pre>';

print_r( $result );

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.