¿Está roto el algoritmo de clasificación de Java y Python?

Realmente no tienes que creer lo que dicen. Puede ejecutar su código usted mismo y verificar: ordenar una matriz suficientemente grande (llena de una manera particular) con Arrays.sort () arroja una ArrayIndexOutOfBoundsException.

En el caso de Python, existía el mismo error lógico pero debido a una diferencia en el tamaño elegido para la estructura de datos auxiliar, no era posible reproducirlo.

Los equipos de Java y Python trataron el informe de error como válido y tomaron medidas para corregir el problema.

El parche de Java básicamente aumenta el tamaño de la estructura de datos auxiliar, en lugar de corregir el error lógico. Puede encontrar el parche aquí: http://cr.openjdk.java.net/~lpri…

El parche de Python corrige el error subyacente, según lo identificado por el artículo vinculado. Puede encontrar ese parche aquí: https://hg.python.org/cpython/re… Tim Peters reconoció el problema y hace un argumento convincente aquí (Problema 23515: Mala lógica en timsort’s merge_collapse) para solucionarlo correctamente.

por lo que entendí de la publicación del blog del artículo original ( http://envisage-project.eu/provi …), es cierto, y es fácil generar casos de prueba que desencadenarán el error para Java pero para Python necesita un caso de prueba muy grande y una súper computadora para activar el error en el algoritmo …

No es para Python. Según el artículo, es suficiente para matrices de longitud de hasta 2 ** 49. Eso es inimaginablemente enorme, y nadie usará python en una supercomputadora en el corto plazo. Timsort es bastante asombroso.
El propio Tim Peters se dio cuenta de esto (Problema 23515: Mala lógica en la fusión_collapse de timsort) y ahora se cree que el problema está solucionado.