Você está na página 1de 2

Laborat orio Nacional de Computa c ao Cient ca Disciplina: GA-026 - Ci encia da Computa c ao: Algoritmos I Professor: Carla Ostho Aluno:

Bruno de Oliveira Chagas Data: 6 de setembro de 2013

Radix e Bucket Sort


1. Radix Sort O radix sort (ou ordena c ao da raiz) e o algoritmo usado pelas m aquinas de ordena c ao de cart oes que agora s ao encontradas apenas nos museus de inform atica. Os cart oes est ao organizados em 80 colunas, e em cada coluna pode ser feita uma perfura c ao em uma de 12 posi c oes. O ordenador pode ser programadomecanicamente para examinar uma determinada coluna de cada cart ao em uma pilha e distribuir o cart ao em uma de 12 caixas, dependendo de qual foi o local perfurado. Um operador pode ent ao juntar os cart oes caixa por caixa, de modo que os cart oes com a primeira posi c ao perfurada quem sobre os cart oes com a segunda posi c ao perfurada e assim por diante (Algoritmos, Cormen). No caso de d gitos decimais, apenas 10 posi c oes s ao utilizadas em cada coluna. (As outras duas posi c oes s ao usadas para codica c ao de caracteres n ao num ericos.) Assim, um n umero de d d gitos ocuparia um campo de d colunas. Tendo em vista que o ordenador de cart oes pode examinar apenas uma coluna de cada vez, o problema de ordenar n cart oes em um n umero de d d gitos requer um algoritmo de ordena c ao. O radix sort resolve o problema da ordena c ao de cart oes de modo contra-intuitivo ordenando primeiro sobre o d gito menos signifcativo.Os cart oes s ao ent ao combinados em uma u nica pilha, com os cart oes na caixa O precedendo os cart oes na caixa 1,que precedem os cart oes na caixa 2 e assim por diante. Ent ao, a pilha inteira e ordenada novamente sobre o segundo d gito menos signicativo e recombinada de maneira semelhante. O processo continua at e os cart oes terem sido ordenados sobre todos os d d gitos. Digamos que queiramos ordenar a sequ encia de d gitos [121]-[101]-[222]-[120]-[111]. Essa sequ encia possui apenas tr es d gitos: 0, 1 e 2. Portanto, a ordena c ao ser a: Passo-1 D gito 0 = 120 D gito 1 = 121 101 111 D gito 2 = 222 Ordena c ao 1 = [120] [121] [101] [111] [222] Passo-2 D gito 0 = 101 D gito 1 = 111 D gito 2 = 120 121 222 Ordena c ao 2 = [101] [111] [120] [121] [222] Passo-3 D gito 0 = D gito 1 = 101 111 120 121 D gito 2 = 222 Ordena c ao 3 = [101] [111] [120] [121] [222]

2. Bucket Sort O bucket sort (ou ordena c ao por caixas) funciona em tempo linear quando a entrada e gerada a partir de uma distribui c ao uniforme. Como a ordena c ao por contagem, a bucket sort e r apida porque pressup oe algo sobre a entrada. Enquanto a ordena c ao por contagem presume que a entrada consiste em inteiros em um intervalo pequeno, bucket sort presume que a entrada e gerada por um processo aleat orio que distribui elementos uniformemente sobre o intervalo [O, 1). A id eia de bucket sort e dividir o intervalo [O, 1) em n subintervalos de igual tamanho, ou caixas, e depois distribuir os n n umeros de entrada entre as caixas. Tendo em vista que as entradas s ao uniformemente distribu das sobre [O, 1), n ao esperamos que muitos n umeros caiam em cada caixa. Para produzir a sa da, simplesmente ordenamos os n umeros em cada caixa, e depois percorremos as caixas em ordem, listando os elementos contidos em cada um. A gura (1) mostra um exemplo de como o algoritmo de ordena c ao funciona.

Figura 1: Ordena c ao Bucket Sort


3. Compara c ao de desempenho

Figura 2: Compara c ao de desempenho entre Radix e Bucket Sort


2

Você também pode gostar