Jogos troca das bolas

3 respostas
A

Pessoal preciso de ajuda com um problema, eu sei que se resolve usando arvore mas nesse assunto sou fraco e passei muito tempo sem mexer em java.
preciso ordedar um vetor 000_111, onde eu só posso mover os “0” para direita e os “1” para esquerda.

passo 1 00_0111 passo 6 010101 passo 11 101_100
passo 2 0010_11 passo 7 10_0101 passo 12 1_10100
passo 3 00101_1 passo 8 1010_01 passo 13 11_0100
passo 4 001_101 passo 9 101010
passo 14 1110_00
passo 5 0_10101 passo 10 10101_0 passo 15 111_000

preciso resolver isso utilizando e utilizando threads, para utilizar com qualquer quantidade de 000 e 111, o vetor seria n*2+1.

funcionaria como nesse link http://www.joguegratis.com.br/jogos-de-raciocinio/jogo-do-sapo/

3 Respostas

A

Eu conseguiu resolver esse problema utilizando um vetor e fazendo pesquisas da esquerda para direita e da direita para esquerda.
Minha duvida é, como fazer a árvore, tipo tenho que fazer a arvote com 000_111, depois o nó esquerdo com 000_111 e verificar se existe 0_ ou 1_, se sim troca se nao ele faz outro nó com o resultado. fazendo isso até que a arvore fique ordenada.

WellingtonRamos

Por favor, poste o que já fez ou qual a dúvida na implementação.

WellingtonRamos

Entendi.

Pode-se implementar através de algum algorítmo de ordenação onde o 0 teria peso 1, 1 teria peso 3 e _ teria peso 2. Nesse caso a ordenação seria inversa considerando a entrada 000_111.

Posso até estar enganado mas parece-me um algorítmo de bubble-sort (com algumas diferenças).
Acho que pode considerar uma árvore organizada inicialmente assim:

_
        /   \
      0      1
     /         \
   0            1
  /               \
0                  1
Criado 26 de abril de 2011
Ultima resposta 28 de abr. de 2011
Respostas 3
Participantes 2