Saltar al contenido

Radix Sort para enteros negativos

Sofía, miembro de nuestro staff, nos ha hecho el favor de redactar esta reseña ya que controla a la perfección el tema.

Solución:

Puede tratar el signo como un tipo especial de dígito. Ordenas la pila en las unidades, luego en las decenas, etc. y finalmente en el signo. Esto produce un orden inverso para los negativos, luego simplemente invierte el contenido de ese cubo. Así funcionaban los antiguos clasificadores mecánicos de tarjetas.

Tenga en cuenta que el bit de signo es el bit más alto en un entero con signo, pero todos los números son tratados por clasificación por radix como enteros sin signo de forma predeterminada. Entonces necesitas decirle al algoritmo que los números negativos son más pequeños que los positivos. En el caso de los enteros de 32 bits con signo, puede ordenar primero los tres bytes inferiores y luego ordenar el cuarto byte (superior) con el bit de signo invertido para que se use 0 para los números negativos en lugar de 1 y, en consecuencia, se colocarán primero.

Recomiendo enfáticamente ordenar los números byte por byte en lugar de por dígitos decimales, porque es mucho más fácil para la máquina recoger bytes que extraer dígitos.

Una solución más es separar los enteros negativos de los arrayhágalos positivos, clasifíquelos como valores positivos usando radix, luego inviértalo y agregue con ordenados no negativos array.

Tienes la opción de añadir valor a nuestro contenido añadiendo tu veteranía en las crónicas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *