UFRPE - PowerPoint PPT Presentation

About This Presentation
Title:

UFRPE

Description:

UFRPE Licenciatura em Computa o Curso: Pr tica e Ensino de Algoritmos Prof.: Breno Miranda e Nat lia Flora ORDENA O POR CONTAGEM Ordena o por Contagem ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 15
Provided by: natalia
Category:
Tags: ufrpe | cormen

less

Transcript and Presenter's Notes

Title: UFRPE


1
UFRPE Licenciatura em ComputaçãoCurso Prática
e Ensino de AlgoritmosProf. Breno Miranda e
Natália Flora
  • ORDENAÇÃO POR CONTAGEM

2
Ordenação por Contagem
  • Algoritmo apresentado
  • Counting Sort

3
COUNTING SORT
  • Aspectos Positivos
  • Ordena vetores em tempo linear para o tamanho do
    vetor inicial
  • Não realiza comparações
  • É um algoritmo de ordenação estável

4
COUNTING SORT
  • Aspecto Negativo
  • Necessita de dois vetores adicionais para sua
    execução, utilizando, assim, mais espaço na
    memória.

5
COUNTING SORT
  • Funcionamento
  • A ordenação por contagem pressupõe que cada um
    dos n elementos do vetor de entrada é um inteiro
    entre 1 e k (k representa o maior inteiro
    presente no vetor).
  • A idéia básica é determinar, para cada elemento
    de entrada x, o numero de elementos menores ou
    iguais a x. Com essa informação é possível
    determinar exatamente onde o elemento x será
    inserido.

6
EXEMPLO
5
9
2
0
7
2
8
9
5
A
1 2 3 4 5 6
7 8 9
7
B
1 2 3 4 5 6
7 8 9
  • ? Na lista A acima o elemento circulado 7 possui
    5 elementos menores que ele. Dessa forma o
    elemento 7 deverá ser inserido no índice 6 (5
    1) do vetor de saída B.

7
ALGORITMOCOUNTING SORT
  • 01 CountingSort(A, B, k)
  • 02 for I?0 to k
  • 03 do Ci? 0
  • 04 for j?1 to comprimento A
  • 05 do CAj? CAj 1
  • 06 for I?2 to k
  • 07 do Ci Ci Ci-1
  • 08 for j? comprimento A downto 1
  • 09 do BCAj Aj
  • 10 CAj CAj - 1

8
SIMULAÇÃO - COUNTING SORT
O algoritmo recebe um vetor desordenado como
entrada
Em seguida, gera os vetores adicionais B e C
? O vetor B é do mesmo tamanho do vetor A (8
elementos).
? O vetor C é do tamanho do maior elemento de A
1 (5 1 6).
9
SIMULAÇÃO - COUNTING SORT
Se o valor de um elemento de entrada é i,
incrementamos Ci
  • Ci contém um número de elementos de entrada
    igual a i para
  • cada i 0,1,2,...,k.

Agora fazemos Ci Ci Ci-1 para
determinarmos quantos elementos de entrada são
menores que ou iguais a i
10
SIMULAÇÃO - COUNTING SORT
Agora, partindo do maior para o menor índice,
fazemos BCAj Aj. Assim, colocamos cada
elemento Aj em sua Posição ordenada no vetor B
Exemplo
?Para j 8 BCA8 ? BC3 ? B7 B7
A8 ? B7 3
11
SIMULAÇÃO - COUNTING SORT
Em seguida decrementamos o valor de CAj toda
vez que Inserimos um valor no vetor B. isso faz
com que o próximo elemento de entrada com valor
igual a Aj, se existir, vá para a posição
imediatamente anterior a Aj no vetor B.
C3 C3 1
12
SIMULAÇÃO - COUNTING SORT
Após as iterações de (comprimento de A até 1)
temos o vetor de saída B ordenado!!!
13
COUNTING SORT IN PYTHON
  • def Countingsort(lista)
  • k maximo(lista)
  • B 0 for w in range(len(lista))
  • C 0 for w in range(k1)
  • for j in range(0,len(lista))
  • Clistaj Clistaj 1
  • for i in range(1,k1)
  • Ci Ci-1
  • for j in range(len(lista)-1,0,-1)
  • BClistaj-1 listaj
  • Clistaj Clistaj - 1
  • return B

14
REFERÊNCIAS BIBLIOGRÁFICAS
  • CORMEN, T.H. LEISERSON, C.E. and RIVEST, R.L.
    teoria e prática, 2002.
Write a Comment
User Comments (0)
About PowerShow.com