def sort(lista, cmp = lambda x, y: (x.value > y.value) - (x.value < y.value)): izquierda = [] derecha = [] centro = [] if len(lista) > 1: select_pivote = lista[0] for i in lista: comparacion = cmp(i, select_pivote) if comparacion == -1: izquierda.append(i) elif comparacion == 1: derecha.append(i) elif comparacion == 0: centro.append(i) return sort(izquierda, cmp) + centro + sort(derecha, cmp)