No caso:
Armando da Silva
Armando Gustavo
Quem vem primeiro? O 'd' é menor que o 'G', mas às vezes em listas de ordem alfabética de nomes essas preposições são simplesmente ignoradas. Nesse caso, a comparação seria entre o 'S' e o 'G', e eles teriam que trocar de lugar.
Eu tenho uma OUTRA dúvida a respeito da comparação de nomes:
Eu poderia fazer um vetor e ordenar os nomes com um algoritmo de complexidade n(logn).
Porém acredito que tenha mais haver com a proposta do ep, ordená-los com manipulação de listas ligadas (mesmo com uma complexidade pior).
Estou certo?
Tonny,
Não sei se seria muita vantagem criar uma "versão" do vet_a ordenada por nomes. Mais fácil já inserir na ordem certa nas listas ligadas mesmo, não?
É que não sei se entendi direito o que você quer fazer.
Não sei se seria muita vantagem criar uma "versão" do vet_a ordenada por nomes. Mais fácil já inserir na ordem certa nas listas ligadas mesmo, não?
É que não sei se entendi direito o que você quer fazer.
Valeu Samuel,
eu tinha até me planejado pra fazer assim, mas depois esqueci, porque comecei a imaginar os vet_a e vet_d organizados como se fosse uma "tabela cheia de buracos".
Sei lá se fui claro. Mas tb, se não fui, blz tb. O que interessa é q vc já me ajudou.
eu tinha até me planejado pra fazer assim, mas depois esqueci, porque comecei a imaginar os vet_a e vet_d organizados como se fosse uma "tabela cheia de buracos".
Sei lá se fui claro. Mas tb, se não fui, blz tb. O que interessa é q vc já me ajudou.
Estou com a mesma dúvida, só q piorada XD
Marcos Daniel
Marcos da Silva
As maiúsculas vem antes ou depois? Ou eu posso acreditar na ordem lexicográfica?
E outra: podemos esquecer dos caracteres acentuados? Eles são chatos...
Valeu!
Marcos Daniel
Marcos da Silva
As maiúsculas vem antes ou depois? Ou eu posso acreditar na ordem lexicográfica?
E outra: podemos esquecer dos caracteres acentuados? Eles são chatos...
Valeu!
Em resposta à Paulo Cheadi Haddad Filho
Re: Comparação de nomes
Não é pra usar strcmp?
A função strcmp() usa os valores da tabela ASCII, em que as maiúsculas vêm antes das minúsculas. Se vc for ver no arquivo saida1.txt que os monitores forneceram tem lá:
A FEP0240
1765638 Alexandre de Oliveira Neto
2867625 Alexandre Valadares
1747327 Bernardo Toshinori Narutaki
2840715 Christian Marcus Ortega
2842016 Luciano Silva
Usando strcmp(), os dois primeiros nomes ficam invertidos! Logo, ou ele considerou que 'd' < 'V' ou ele não considera as preposições, e compara o 'V' de Valadares direto com o 'O' de Oliveira. Só por esse exemplo não dá para saber, por isso a dúvida.
Ah, e Paulo, acho que nesse caso é só considerar as próximas letras até encontrar uma diferenete, como se 'D' == 'd'.
A FEP0240
1765638 Alexandre de Oliveira Neto
2867625 Alexandre Valadares
1747327 Bernardo Toshinori Narutaki
2840715 Christian Marcus Ortega
2842016 Luciano Silva
Usando strcmp(), os dois primeiros nomes ficam invertidos! Logo, ou ele considerou que 'd' < 'V' ou ele não considera as preposições, e compara o 'V' de Valadares direto com o 'O' de Oliveira. Só por esse exemplo não dá para saber, por isso a dúvida.
Ah, e Paulo, acho que nesse caso é só considerar as próximas letras até encontrar uma diferenete, como se 'D' == 'd'.
Então, isso q eu queria saber: se o strcmp é o q se quer. Suponho q seja! hUAEHu!
Ah! Agora q eu li! (maldito delay de post)
Tô vendo q eu vou ter q tirar a dúvida na aula... =/
Tô vendo q eu vou ter q tirar a dúvida na aula... =/
A melhor pessoa para responder isso é o Carlinhos.
De qualquer forma, quem vem antes na vida real: Marcos da Silva ou Marcos Danete?
Na lista da Fuvest (que todo mundo entende bem), o Marcos da Silva vem primeiro, certo?
Acho que assim fica resolvido, certo?
De qualquer forma, quem vem antes na vida real: Marcos da Silva ou Marcos Danete?
Na lista da Fuvest (que todo mundo entende bem), o Marcos da Silva vem primeiro, certo?
Acho que assim fica resolvido, certo?
Respondi para os que me perguntaram na aula de hoje. A ordenação deve ser como feita em língua portuguesa (ou seja, 'd' < 'E', e 'd'='D' e ainda ' '< 'a'). E comparação letra a letra (lexicográfica).
--
carlinhos
--
carlinhos
Hmm... Isso significa então que nada do método strcasecmp tbm, certo? =(
Eu usei a strcmp, mas primeiro coloquei todos os caracteres em maiúsculo (usando a função toupper e strings auxiliares para armazenar temporariamente esses nomes em caixa alta).