Thanos Sort
Quiero ver la solución
Instrucciones
Thanos sort es un algoritmo de ordenamiento de super villanos, que funciona de la siguiente manera: si un arreglo no está ordenado, chasquee los dedos para eliminar la primera o la segunda mitad de los elementos, y repita el proceso.
Dado un arreglo de entrada, ¿cuál es el tamaño del arreglo ordenado más largo que se puede obtener al utilizar Thanos sort.
link al problema original.
- Generar una función llamada thanos_sort.
- La función debe recibir como argumento una lista.
- La función debe retornar el tamaño del arreglo (ordenado) más largo que se pueda obtener al implementar el algoritmo.
>>> array = [1, 2, 2, 4]
>>> thanos_sort(array)
4
>>> array = [11, 12, 1, 2, 13, 14, 3, 4]
>>> thanos_sort(array)
2
>>> array = [7, 6, 5, 4]
>>> thanos_sort(array)
1
Ayuda:
- En el primer ejemplo el arreglo ya se encuentra ordenado, no es necesario chasquear los dedos.
- En el segundo ejemplo el arreglo contiene 4 sub arreglos ordenados ( (11, 12) (1, 2) (13, 14) (3, 4) )
- En el último ejemplo el arreglo se encuentra ordenado de forma descendente, entonces tú puedes solo almacenar un elemento de la última destrucción.
Plus: Si así lo deseas puedes implementar el algoritmo en una sola línea de código cof cof lambdas 👻