Percorrer Vector Java

jahred

Power Member
Boas!
O meu objectivo é, em Java, percorrer um vector de Tarefas (da classe tarefa) do fim para o início, mas sem tornar o algoritmo quadrático, ou seja, sem usar "for (int i=tarefas.size-1 ; i>=0;i--)...".
Do início para o fim seria qualquer coisa como "for (Tarefa a : tarefas) ...", agora o que eu queria era o inverso! Obrigado por qq ajuda! cumprimentos
 
Confesso a minha ignorância neste caso, não te sei resolver o problema.

No entanto, qual o problema do for (quadrático) que exemplificaste?
 
Ou tu não te explicaste bem ou eu percebi mal. Se só tiveres um ciclo o algoritmo é linear, só é quadrático se tiveres dois ciclos encadeados. Explica melhor a situação.
 
Exacto, esse ciclo que puseste é O(n). Não é quadratico.

1) for(int i = 0 ; i < tarefas.size ; i++) {
Tarefa t = tarefas;
}

2) for(Tarefa t : tarefas)

O primeiro não é mais eficiente que o segundo, têm a mesma eficácia, a unica diferença é que o segundo usa uma notaçao mais "moderna" e simples (java >= 1.5)
*Isto quando é para vectores, porque quando é para listas ou estruturas de dados semelhantes, a eficácia já é bem diferente*

Como deves imaginar, percorrer de trás para a frente custa o mesmo que percorrer de frente para trás, portanto o ciclo for (int i=tarefas.size-1 ; i>=0;i--) é na mesma linear.
 
Última edição:
é que o prof liga muito à eficiencia e rapidez do projecto, e desaconselhou toda a gente a não usar for(i=0....) senão :rcarton:


Pois claro se estais a aprender a analise da complexidade é claro que liga.

O teu problema é que nem sabes o que queres, ou pelo menos te sabes explicar minimamente em condições.

Mas a culpa de vocês não saberem resolver o exercício é dp vosso professor que é cromo e crente ao esperar que vocês apareçam com a solução sozinhos

O que tu queres é um algoritmo de pesquisa logarítmica, agora é só ires ao Google e pesquisar...
 
Back
Topo