def qs(L):
if len(L) < 2:return L
V = []
P = []
for i in L[1:]:
if comparador(L[0], i):P.append(i)
else:V.append(i)
return qs(V) + [L[0]] + qs(P)
def comparador(e1, e2):
return e1[1] < e2[1] or e1[1] == e2[1] and e1[0] >= e2[0]
def adjunto(letras, edades):
d = []
for i in range(len(letras)):
d.append((letras[i], edades[i]))
datos = qs(d) # No se pasa ningún comparador
L = []
E = []
for dato in datos:
L.append(dato[0])
E.append(dato[1])
return L, E
letras,elementos=["A","B","C","D"],[21,37,17,21]
print(adjunto(letras,elementos))
"""
def qs(L):
if len(L) < 2:return L
V = []
P = []
for i in L[1:]:
if L[0][1] < L[i][1] or (L[0][1] == L[i][1] and L[0][0] >= L[i][0]): P.append(L[i])
else: V.append(L[i])
return qs(V) + [L[0]] + qs(P)
"""
ZGVmIHFzKEwpOgogICAgaWYgbGVuKEwpIDwgMjpyZXR1cm4gTAogICAgViA9IFtdCiAgICBQID0gW10KICAgIGZvciBpIGluIExbMTpdOgogICAgICAgIGlmIGNvbXBhcmFkb3IoTFswXSwgaSk6UC5hcHBlbmQoaSkKICAgICAgICBlbHNlOlYuYXBwZW5kKGkpCiAgICByZXR1cm4gcXMoVikgKyBbTFswXV0gKyBxcyhQKQoKCmRlZiBjb21wYXJhZG9yKGUxLCBlMik6CiAgICByZXR1cm4gZTFbMV0gPCBlMlsxXSBvciBlMVsxXSA9PSBlMlsxXSBhbmQgZTFbMF0gPj0gZTJbMF0KCgpkZWYgYWRqdW50byhsZXRyYXMsIGVkYWRlcyk6CiAgICBkID0gW10KICAgIGZvciBpIGluIHJhbmdlKGxlbihsZXRyYXMpKToKICAgICAgICBkLmFwcGVuZCgobGV0cmFzW2ldLCBlZGFkZXNbaV0pKQogICAgZGF0b3MgPSBxcyhkKSAgIyBObyBzZSBwYXNhIG5pbmfDum4gY29tcGFyYWRvcgogICAgTCA9IFtdCiAgICBFID0gW10KICAgIGZvciBkYXRvIGluIGRhdG9zOgogICAgICAgIEwuYXBwZW5kKGRhdG9bMF0pCiAgICAgICAgRS5hcHBlbmQoZGF0b1sxXSkKICAgIHJldHVybiBMLCBFCgpsZXRyYXMsZWxlbWVudG9zPVsiQSIsIkIiLCJDIiwiRCJdLFsyMSwzNywxNywyMV0KcHJpbnQoYWRqdW50byhsZXRyYXMsZWxlbWVudG9zKSkKCiIiIiAgIApkZWYgcXMoTCk6CiAgICBpZiBsZW4oTCkgPCAyOnJldHVybiBMCiAgICBWID0gW10KICAgIFAgPSBbXQogICAgZm9yIGkgaW4gTFsxOl06CiAgICAgICAgaWYgTFswXVsxXSA8IExbaV1bMV0gb3IgKExbMF1bMV0gPT0gTFtpXVsxXSBhbmQgTFswXVswXSA+PSBMW2ldWzBdKTogUC5hcHBlbmQoTFtpXSkKICAgICAgICBlbHNlOiBWLmFwcGVuZChMW2ldKQogICAgcmV0dXJuIHFzKFYpICsgW0xbMF1dICsgcXMoUCkKIiIiCg==