count sort

251 palavras 2 páginas
Counting sort é um algoritmo de ordenação estável cuja complexidade é O(n). As chaves podem tomar valores entre 0 e M-1. Se existirem k0 chaves com valor 0, então ocupam as primeiras k0 posições do vetor final: de 0 a k0-1.

Implementações[editar | editar código-fonte]
Cria cnt[M+1] e b[max N]
Inicializa todas as posições de cnt a 0.
Percorre o vector a e, para cada posição i de a faz cnt[a[i]-1]++ o que faz com que, no final, cada posição i de cnt contem o nº de vezes que a chave i-1 aparece em a.
Acumula em cada elemento de cnt o elemento somado ao elemento anterior: cnt[i] indica a posição ordenada do primeiro elemento de chave i.
Guarda em b os valores de a ordenados de acordo com b[cnt[a[i]++]=a[i]
Copia b para a.
Counting-Sort trabalha como uma contadora de ocorrências dentro de um programa, especificamente dentro de um vetor. Quando determinado vetor tem números repetidos, números únicos e números que não existem um outro vetor indica a quantidade de ocorrências.
Esta implementação tem a desvantagem de precisar de vectores auxiliares. O Counting Sort ordena exclusivamente números inteiros pelo fato de seus valores servirem como índices no vetor de contagem.

#include
#include

void count_sort (int *A, int n, int *B, int *C, int k){ int i; //passo 1: for(i=0;

Relacionados

  • Relatório técnico de analise experimental da complexidade de algoritmos em classificação de dados em tempo linear
    4795 palavras | 20 páginas
  • Algoritmo ordenação
    3859 palavras | 16 páginas
  • O mito da caverna e a demagogia
    906 palavras | 4 páginas
  • A comparison of parallel sorting algorithms on different architectures
    9346 palavras | 38 páginas
  • Bucket sort
    420 palavras | 2 páginas
  • Radix sort
    674 palavras | 3 páginas
  • LGD Aula TI T06 PHP Arrays 14 15 Slides
    814 palavras | 4 páginas
  • MongoDB
    702 palavras | 3 páginas
  • 20141031123856algoritmos de ordenacao
    1300 palavras | 6 páginas
  • balalbalbal
    1033 palavras | 5 páginas