dicas.01

Post on 15-Sep-2015

216 views 0 download

description

maratona

Transcript of dicas.01

  • Maratona de Programao Paralela ERAD-SP 2012

    Dica 1 Radix Sort

    Os algoritmos de radixsort podem ser classificados em dois grupos: least significant

    digit (LSD) e most significant digit (MSD).

    Os algoritmos LSD analisam os dgitos da chave da direita para a esquerda, trabalhando

    com os dgitos menos significativos. J os algoritmos MSD avaliam os dgitos da

    esquerda para a direita (consequentemente, trabalhando com os dgitos mais

    significativos).

    A Figura 1 apresenta um exemplo com os algoritmos LSD e MSD com chaves de

    tamanho 3.

    Figura 1. Exemplo simples dos algoritmos LSD e MSD.

    Observando com calma o algoritmo MSD, possvel perceber que, aps a 1 ordenao

    2 coluna da Figura 1 todas as chaves iniciadas pelo mesmo dgito foram agrupadas.

    Um exemplo pode ser visto na Figura 2.

    Figura 2. Agrupamento de mesmo dgito 1 ordenao.

  • Maratona de Programao Paralela ERAD-SP 2012

    Para o problema solicitado na Maratona de Programao Paralela ERAD-SP/2012,

    seriam 93 grupos de chaves com o 1 digito j ordenado chaves agrupadas desde o

    ASCII 0x21 at 0x7E.

    Portanto, a partir dessa situao, possvel pensar em uma soluo paralela e/ou

    distribuda que considera cada grupo resultante desse 1 passo da ordenao como sendo

    tarefas cada uma destas, independente. A Figura 3 apresenta um exemplo.

    Tarefa 1 Tarefa 2 Tarefa 3

    Figura 3. Tarefas geradas a partir do 1 passo da ordenao.

    Sendo assim, possvel executar o 2 passo do algoritmo MSD (ou LSD) nos dgitos

    restantes de forma que cada processador execute o restante em paralelo.