Ordenamiento Distribución por Conteo

Es una variación del Método Ordenamiento por Conteo; Este método es útil si los datos poseen mucha repetición y el rango es muy pequeño entre los datos.

Diagrama de Flujo que explica el Ordenamiento Distribución por Conteo

El Ordenamiento se efectua de la sig. forma
Valores Iniciales: n = 8 i = 1...n; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 0, 0, 0, 0, 0, 0, 0}, s = {0, 0, 0, 0, 0, 0, 0, 0}

Por inspección se determina que el mayor de todos es 5, depositado en v, y el menor de todos es 2, depositado en u.

En el conjunto C se contabilizará el número de veces que cada elemento, del conjunto X, se repite; cero indica no repetición.

Para i = 1; x = {2, 3, 2, 4, 2, 3, 4, 5}
c( x(i) ) = c( x(i) ) + 1 c = {0, 1, 0, 0, 0, 0, 0, 0}

Para i = 2; x = {2, 3, 2, 4, 2, 3, 4, 5}
c( x(i) ) = c( x(i) ) + 1 c = {0, 1, 1, 0, 0, 0, 0, 0}

Para i = 3; x = {2, 3, 2, 4, 2, 3, 4, 5}
c( x(i) ) = c( x(i) ) + 1 c = {0, 2, 1, 0, 0, 0, 0, 0}

Para i = 4; x = {2, 3, 2, 4,2, 3, 4, 5}
c( x(i) ) = c( x(i) ) + 1 c = {0, 2, 1, 1, 0, 0, 0, 0}

Para i = 5; x = {2, 3, 2, 4, 2, 3, 4, 5}
c( x(i) ) = c( x(i) ) + 1 c = {0, 3, 1, 1, 0, 0, 0, 0}

Para i = 6; x = {2, 3, 2, 4, 2, 3, 4, 5}
c( x(i) ) = c( x(i) ) + 1 c = {0, 3, 2, 1, 0, 0, 0, 0}

Para i = 7; x = {2, 3, 2, 2, 4, 2, 3, 4, 5}
c( x(i) ) = c( x(i) ) + 1 c = {0, 3, 2, 2, 0, 0, 0, 0}

Para i = 8; x = {2, 3, 2, 2, 4, 2, 3, 4, 5}
c( x(i) ) = c( x(i) ) + 1 c = {0, 3, 2, 2, 1, 0, 0, 0}


Ahora se determinará el rango de posiciones donde se colocará cada valor, del conjunto X al conjunto S

Para i = 3; c = {0, 3, 2, 2, 1, 0, 0, 0}
c(i) = c(i) + c(i-1) c = {0, 3, 5, 2, 1, 0, 0, 0}

Para i = 4; c = {0, 3, 5, 2, 1, 0, 0, 0}
c(i) = c(i) + c(i-1) c = {0, 3, 5, 7, 1, 0, 0, 0}

Para i = 5; c = {0, 3, 5, 7, 1, 0, 0, 0}
c(i) = c(i) + c(i-1) c = {0, 3, 5, 7, 8, 0, 0, 0}


Por último se colocarán los valores del conjunto X, en base a las posiciones indicadas en los contadores C, en el conjunto S:
Para i = 1; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 3, 5, 7, 8, 0, 0, 0}
s( c( x(i) ) ) = x(i) s = {0, 0, 2, 0, 0, 0, 0, 0}

Restar 1 a c( x(i) ) c = {0, 2, 5, 7, 8, 0, 0, 0}

Para i = 2; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 2, 5, 7, 8, 0, 0, 0}
s( c( x(i) ) ) = x(i) s = {0, 0, 2, 0, 3, 0, 0, 0}

Restar 1 a c( x(i) ) c = {0, 2, 4, 7, 8, 0, 0, 0}

Para i = 3; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 2, 4, 7, 8, 0, 0, 0}
s( c( x(i) ) ) = x(i) s = {0, 2, 2, 0, 3, 0, 0, 0}

Restar 1 a c( x(i) ) c = {0, 1, 4, 7, 8, 0, 0, 0}

Para i = 4; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 1, 4, 7, 8, 0, 0, 0}
s( c( x(i) ) ) = x(i) s = {0, 2, 2, 0, 3, 0, 4, 0}

Restar 1 a c( x(i) ) c = {0, 1, 4, 6, 8, 0, 0, 0}

Para i = 5; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 1, 4, 6, 8, 0, 0, 0}
s( c( x(i) ) ) = x(i) s = {2, 2, 2, 0, 3, 0, 4, 0}

Restar 1 a c( x(i) ) c = {0, 0, 4, 6, 8, 0, 0, 0}

Para i = 6; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 0, 4, 6, 8, 0, 0, 0}
s( c( x(i) ) ) = x(i) s = {2, 2, 2, 3, 3, 0, 4, 0}

Restar 1 a c( x(i) ) c = {0, 0, 3, 6, 8, 0, 0, 0}

Para i = 7; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 0, 3, 6, 8, 0, 0, 0}
s( c( x(i) ) ) = x(i) s = {2, 2, 2, 3, 3, 4, 4, 0}

Restar 1 a c( x(i) ) c = {0, 0, 3, 5, 8, 0, 0, 0}

Para i = 8; x = {2, 3, 2, 4, 2, 3, 4, 5}, c = {0, 0, 3, 5, 8, 0, 0, 0}
s( c( x(i) ) ) = x(i) s = {2, 2, 2, 3, 3, 4, 4, 5}

Restar 1 a c( x(i) ) c = {0, 0, 3, 5, 7, 0, 0, 0}