Dada una serie de dígitos, ¿cómo los clasifica con la complejidad temporal o (n)?

Puede encontrar la complejidad de tiempo O (n) para ordenar una matriz de dígitos en el mejor caso de ordenación por inserción ( eficiente para conjuntos de datos que ya están sustancialmente ordenados: la complejidad de tiempo es O (nk) cuando cada elemento en la entrada no es más que k se aleja de su posición ordenada ).

Pero, en general, tenemos a lo sumo la complejidad del tiempo O (nlogn) para la clasificación de algoritmos como la combinación de clasificación, clasificación de montón, clasificación rápida (el mejor de los casos).

Ok, si insistes más, entonces puedo llevarte a Conteo de clasificación – GeeksforGeeks, pero necesita espacio adicional. La clasificación de conteo es una técnica de clasificación basada en teclas entre un rango específico. Funciona contando el número de objetos que tienen valores clave distintos (tipo de hash). Luego haciendo algo de aritmética para calcular la posición de cada objeto en la secuencia de salida.

Vamos a entenderlo con la ayuda de un ejemplo.

  Para simplificar, considere los datos en el rango de 0 a 9. 
 Datos de entrada: 1, 4, 1, 2, 7, 5, 2
   1) Tome una matriz de conteo para almacenar el conteo de cada objeto único.
   Índice: 0 1 2 3 4 5 6 7 8 9
   Recuento: 0 2 2 0 1 1 0 1 0 0

   2) Modifique la matriz de conteo de modo que cada elemento en cada índice 
   almacena la suma de los recuentos anteriores. 
   Índice: 0 1 2 3 4 5 6 7 8 9
   Cuenta: 0 2 4 4 5 6 6 7 7 7

 La matriz de recuento modificada indica la posición de cada objeto en 
 La secuencia de salida.
 
   3) Salida de cada objeto de la secuencia de entrada seguido de 
   disminuyendo su recuento en 1.
   Procese los datos de entrada: 1, 4, 1, 2, 7, 5, 2. La posición de 1 es 2.
   Ponga los datos 1 en el índice 2 en la salida.  Disminuya el recuento en 1 para colocar 
   siguiente dato 1 en un índice 1 más pequeño que este índice.

Complejidad de tiempo: O (n + k) donde n es el número de elementos en la matriz de entrada yk es el rango de entrada.
Espacio auxiliar: O (n + k)

Salud !!!!

Contar Ordenar – GeeksforGeeks

More Interesting

Dado un gráfico no dirigido y acíclico, ¿cómo encuentro el nodo para el cual la distancia máxima a cualquiera de los otros nodos es la más baja?

¿Cuáles son algunos algoritmos de aprendizaje automático que pueden ayudarme a encontrar las similitudes o diferencias entre las ideas textuales?

¿Cuál sería el algoritmo para encontrar subárboles duplicados en un árbol binario?

¿Desde dónde puedo aprender estructuras de datos en Bhopal?

¿Cuáles son algunos "problemas de práctica" en los que todos deberían trabajar para mejorar la programación (en cualquier lenguaje de programación)?

Probé el problema 'Impresión espiral de matriz' durante 2 días. Incluso después de ver la solución, sigo fallando. ¿Qué tengo que hacer?

¿Estoy perdiendo el tiempo implementando la estructura de datos elementales (Stacks, Queues y LinkedLists) como parte de la preparación para una entrevista de prácticas en Google?

¿Por qué se utiliza la ordenación del montón?

¿Cuáles son las aplicaciones de la estructura de datos de conjuntos disjuntos?

¿Cuál es un ejemplo de un buen algoritmo que se puede usar para unir a diferentes usuarios dentro de un determinado radio en cualquier ubicación según sus preferencias?

Cómo resolver un problema de coincidencia de patrones de cadena sin usar funciones de expresión regular incorporadas

Cómo generar un número aleatorio en C

¿Cuál es la diferencia entre el algoritmo codicioso y la programación dinámica? ¿Es un programa codicioso un subconjunto de programación dinámica?

Cómo resolver este problema usando la descomposición de raíz cuadrada

¿Qué estructuras de datos y algoritmos son esenciales en un curso de pregrado en Ciencias de la Computación?