在做一些事情时,我遇到了一个奇怪的问题,我无法弄清楚。我以两种方式对包含 10,000 个值的列表进行排序,一种使用快速选择,另一种使用插入排序。这样做的目标是找到一个中值,然后使用所述中值我必须找到中值和所有值之间的总距离。中位数计算工作得非常好,但由于我无法理解的原因,总计算返回不同的值。计算总数的函数的输入是列表和中位数。两个程序之间的中位数保持不变,列表的值也一样,但是其中一个列表已排序,而另一个列表未排序。
这是我用来计算总数的内容(对此的格式很好,它只是复制到这里很奇怪)......
def ttlDist(lst, med):
total = 0
for i in lst:
total = abs(med - i)
print(total)
一个列表被排序而另一个列表没有被排序,为什么我会得到截然不同的值?作为参考,我在使用插入排序时得到的距离是 49846.0,但在使用快速选择时得到的距离是 29982