いくつかのことに取り組んでいると、理解できないという奇妙な問題に遭遇しました。10,000 個の値を持つリストを 2 つの方法で並べ替えています。1 つはクイック選択を使用し、もう 1 つは挿入並べ替えを使用します。これの目標は、中央値を見つけることであり、その中央値を使用して、中央値とすべての値の間の合計距離を見つける必要があります。中央値の計算は完全に正常に機能しますが、合計の計算では、理解できない理由で異なる値が返されます。合計を計算する関数への入力は、リストと中央値です。中央値は両方のプログラム間で同じままであり、リストの値も同じですが、リストの 1 つが並べ替えられ、もう 1 つのリストは並べ替えられていません。
これが合計を計算するために使用しているものです(これのフォーマットは問題なく、ここにコピーするだけです)...
def ttlDist(lst, med):
total = 0
for i in lst:
total = abs(med - i)
print(total)
あるリストがソートされていて、別のリストがソートされていない場合、なぜ劇的に異なる値が得られるのでしょうか? 参考までに、挿入ソートを使用した場合の距離は 49846.0 ですが、クイック選択を使用した場合の距離は 29982 です。