Ordenação multicritérios

1. Ordenação multicritérios

Henrique Cesar
henriquecb

(usa Arch Linux)

Enviado em 13/11/2016 - 17:57h

Boa tarde pessoas,
Então, eu estou aprendendo C e preciso usar o ShellSort e o QuickSort para ordenar um vetor com várias chaves diferentes (é como se eu tivesse um vetor de pessoas e ordenasse elas de acordo com o cpf e depois de acordo com a idade, mantendo a primeira ordenação).
Porém eu não tenho nem ideia de como começar, alguem pode me dar alguma dica do que fazer?
(Eu realmente quero apenas uma direção de como fazer o quick e o shell, não quero o programa pronto).
Obrigado :)


  


2. Re: Ordenação multicritérios

Paulo
paulo1205

(usa Ubuntu)

Enviado em 14/11/2016 - 01:53h

Você é obrigado a ordenar todos os registros por um critério primeiro, e depois ordenar de novo todos eles por outro critério, ou pode testar os dois critérios no mesmo processo de ordenação?

Se você tiver de fazer em duas passadas, deve tomar cuidado com a implementação do algoritmo de ordenação. O Quicksort tradicional, por exemplo, não ordena de modo estável (i.e. se existir alguma ordem preexistente -- por exemplo, se a lista já tiver sido ordenada por algum outro critério --, a saída do algoritmo não garante a preservação dessa ordem anterior). Existem variações do Quicksort com vistas à ordenação estável, mas o algoritmo padrão não é uma delas.


3. Re: Ordenação multicritérios

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/11/2016 - 02:52h

Você trabalharia com campos de string ou numéricos?
Tendo a tabela sendo padronizada com 11 caracteres no campo de chave primária do registro?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



4. Re: Ordenação multicritérios

Henrique Cesar
henriquecb

(usa Arch Linux)

Enviado em 14/11/2016 - 10:08h

listeiro_037 escreveu:

Você trabalharia com campos de string ou numéricos?
Tendo a tabela sendo padronizada com 11 caracteres no campo de chave primária do registro?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Seriam 3 campos numéricos o caso os 3 sejam iguais, ai irá ordenar usando uma string mas somente em último caso


5. Re: Ordenação multicritérios

Henrique Cesar
henriquecb

(usa Arch Linux)

Enviado em 14/11/2016 - 10:10h

paulo1205 escreveu:

Você é obrigado a ordenar todos os registros por um critério primeiro, e depois ordenar de novo todos eles por outro critério, ou pode testar os dois critérios no mesmo processo de ordenação?

Se você tiver de fazer em duas passadas, deve tomar cuidado com a implementação do algoritmo de ordenação. O Quicksort tradicional, por exemplo, não ordena de modo estável (i.e. se existir alguma ordem preexistente -- por exemplo, se a lista já tiver sido ordenada por algum outro critério --, a saída do algoritmo não garante a preservação dessa ordem anterior). Existem variações do Quicksort com vistas à ordenação estável, mas o algoritmo padrão não é uma delas.


Seria um por vez, é como se fosse um desempate
Ordena usando o primeiro critério (um interior), se tiver dois ou mais iguais, ordena usando o segundo (outro inteiro) e assim continua até a que não haja nenhum igual. No pior caso irá ordenar 4 vezes sendo que a chave da 3° é um inteiro e a da 4° é uma string






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts