Je travaillais sur certaines choses et je suis tombé sur un problème étrange que j'ai du mal à comprendre. Je trier une liste avec 10.000 valeurs de deux façons, l'une avec l'utilisation de la sélection rapide, et l'autre avec le tri d'usgae de l'insertion. Le but de ceci est de trouver une médiane et ensuite en utilisant ladite médiane, je dois trouver la distance totale entre la valeur médiane et toutes les valeurs. Les calculs médians fonctionnent parfaitement bien, mais les calculs totaux, pour des raisons que je ne peux pas comprendre, renvoient des valeurs différentes. Les entrées dans la fonction qui calcule le total sont la liste et la médiane. La médiane reste la même entre les deux programmes et les valeurs de la liste le font également, mais l'une des listes est triée et l'autre liste n'est pas triée.Python: les listes non triées/triées retournent des valeurs différentes?
Voici ce que j'utilise pour calculer le total (formatage sur cela est bien beau il que des copies en ici bizarre) ...
def ttlDist(lst, med):
total = 0
for i in lst:
total = abs(med - i)
print(total)
Avec une liste triée et une autre étant pas triée pourquoi je obtenir des valeurs radicalement différentes? Pour la réfrence, la distance que j'obtiens en utilisant le tri par insertion est 49846.0 mais la distance que j'obtiens en utilisant quickselect est 29982
Je pense que vous devriez faire 'totale + = abs (med - 1) '. À l'heure actuelle, 'total' est juste' abs (med-lst [-1]) '. – Blender