Ir para conteúdo

POWERED BY:

Arquivado

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

Luan Pedro

[Resolvido] metodos de ordenaçao

Recommended Posts

olááá pessoal estou com uma duvida quanto ao funcionamento de um metodo de ordenaçao

pesquisando sobre as mais diveras formas de metodos,metodo da bolha ,ordenaçao por seleçao,dentre outros ,me deparei com um que aparentemente parece ser facil,mais nao compriendi muito seu funcionamento,é o metodo da Insercao direta .alguem poderia me explicar como ele funciona ???nao exatamente o algoritmo dele já que eu o tenho,mais sim seu funcionamento,e outra duvida minha .....é de qual a diferença entre ..Metodo de insercao direta com insercao direta com busca binaria(busca binaria eu compriendo,é aquele metodo que divide o vetor já ordenado em duas partes ,e vai comparando o valor pesquisado com o vetor na posiçao central.Entao insercao direta com busca binaria seria "Algo do tipo para inserir um elemento em um vetor já ordenado"? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem Luan, eu dei uma procurada aqui nesse metodo e pelo que deu para entender é basicamente assim:

 

Você possui um vetor, partindo-se dos 2 primeiros valores quaisquer inseridos nele você os ordena. Com isso você inicia a ordenação tomando a proxima posição (3) e verificando onde ela deveria estar e insere-o na sua devida posição através do deslocamento dos outros membros do vetor. Eu acho mais facil ver acontecer do que explicar, mas seria assim:

 

Vetor ~> 05 | 20 | 07 | 06 | 21 | 01

Os dois primeiros estão ordenados? (05 e 20) Ok. Mantem.

Vetor ~> 05 | 20 | 07 | 06 | 21 | 01

Pega-se a proxima posição ([3] = 07) e define sua posição, é maior que 5? Sim, então deve estar na proxima. É maior que 20? Não! Então desloca todos os elementos entre a posição de 20 ([2]) e a posição do numero ([3]) comparado do vetor uma casa adiante para abrir essa posição para o numero 07;

Vetor ~> 05 | 20 | 20 | 06 | 21 | 01

Vetor ~> 05 | 07 | 20 | 06 | 21 | 01

Pega-se a proxima posição ([4] = 06) e define sua posição, que no caso é entre 05 e 07, desloca-se todos os elementos entre a posição de 07 e 06 para abrir espaço para a inserção:

Vetor ~> 05 | 07 | 07 | 20 | 21 | 01

Vetor ~> 05 | 06 | 07 | 20 | 21 | 01

Pega-se a proxima posição ([5] = 21) e define sua posição que no caso é após 20, como não há elementos entre a posição [4] e [5] não se desloca e mantém-se a ordenação.

Vetor ~> 05 | 06 | 07 | 20 | 21 | 01

Pega-se a proxima (e neste caso ultima) posição ([6] = 01) e define sua posição que é antes de 05. Desloca-se todos os elementos entre 05 e 01 para abrir espaço.

Vetor ~> 05 | 05 | 06 | 07 | 20 | 21

Vetor ~> 01 | 05 | 06 | 07 | 20 | 21

 

Após 5 passos o vetor de 6 posições esta ordenado.

 

Eu não acho um bom metodo, pelo simples fato que consome tempo por ter que ficar alterando toda a organização do vetor a cada comparação.

No pior dos casos (o vetor estar ordenado invertidamente) você irá fazer os n-1 passos comuns, mas cada um deslocando uma grande quantidade de informações pela sua memoria.

 

Espero ter ajudado (e q seja isso)

Abraaços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

AcquaBlue

 

muito obrigadooooooooo pela explicaçao ,era exatemente duma informaçao como esta que eu estava procurando....>!

 

agora sim compriendi esse metodo ,pois tava meio que dano uma "intercalada no meu intendimento" com o metodo de seleçao por ordenaçao que a principio parecia identico ....

 

hehehehehe

 

Muito Obrigado .>>!

 

gratO.>>!

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.