Estudando algoritimos com o livro do cormen… terceira edição, logo ja me confundi no segundo capitulo, com o seguinte pseudo codigo
for j ← 2 to length[A]
do key ← A[ j ]
✄ Insert A[ j ] into the sorted sequence A[1 … j − 1].
i ← j − 1
while i > 0and A[i ] > key
do A[i + 1] ← A[i ]
i ←i − 1
A[i + 1] ← key
como estou acostumado com o java, essas setas estao um pouco estranhas para mim, mesmo passando a convenção do pseudo codigo ainda estou confuso, se algume pudesse me ajudar
PS: nao achei necessario o uso de por se tratar de pseudocodigo.
EDIT (Moderador) - Para inserir código ou texto com formatação, use as tags [ code ] … [ /code ]
E
entanglement
A seta é o sinal de atribuição, ou “=” no Java. Satisfeito?
(Em particular, quando comecei a aprender programação, achava que o operador de atribuição “=” é que era muito confuso, além de se confundir com o operador de igualdade “=” que é o mesmo em muitas linguagens. Eu estava acostumado com a seta mesmo, que é uma notação mais matemática.)
aajjbb
forj←2tolength[A]
em java seria o mesmo que
for(intj=2; j < A.length; j++) {}
?
E
entanglement
Quase. Seria isto:
for(int j = 2; j <= A.length; j++)
Isso, é claro, se o array começar na posição 1. (Em Java ele começa no 0).
e o "do" seguido de "while" seria como um do-while como no java mesmo?
B
bezier_curve
forj←2tolength[A]dokey←A[ j ]
=
for(intj=2; j <= A.length; ++j) {key←A[j]
}
whilei>0andA[i]>keydoA[i+1]←A[i]i←i−1
=
while(i>0&&A[i]>key){A[i + 1]←A[i ]
Aí não tem nenhum “do/while”. (Não tenho o livro do Cormen aqui comigo, mas acho que o equivalente do do/while do Java no livro do Cormen deve ser o “repeat…until”, não “do…while”.)
Rapaz, você não leu o livro desde o começo. Se tivesse lido, provavelmente entenderia melhor a notação.
aajjbb
estou tentando implementar ele em java, mas ainda nao deu certo…
É que o array do livro do Cormen começa em 1 e vai até N. Em Java, um array começa em 0 e termina em N - 1. Então, você tem de acertar o programa para levar isso em conta. Não dá para simplesmente olhar o algoritmo e copiar sem ententer o que está acontecendo.
aajjbb
é… me indicaram esse como um otimo livro… mas para quem nao é muito experiente… ele é um verdadeiro desafio… estou analizando melhor o pseudocodigo e logo vou postar ele…
aajjbb
cheguei ao seguinte codigo, mas nao obtive exito, acho que agora, os problemas se diminuira, acho q o codigo ta bem parecido como o proposto pelo exercicio...
Também estou precisando de uma ajuda para entender a notação do pseudocódigo do livro de Algorítmos do Cormem. Veja esse exemplo de Rotação à Esquerda de uma árvore Rubro Negra.
Pelo pouco que eu entendi, direita[x] seria como o x->direita em C ou x.direita em java. No entanto, p[esquerda[y]] ou esquerda[p[x]] não fazem sentido pra mim, assim como algumas outras partes onde ele faz essa salada com variáveis e colchetes.