我正在创建一个随机值数组,这样我就可以进行不同的排序,并查看它们是如何交互的。问题是,当我在数组上调用一个排序时,我不能再次使用该数组,因为它已经被排序了。我只是不明白python是如何处理作业的。在我看来,这就像是将一个数组分配给另一个数组共享一个内存地址。有人能不能请您在python中如何分配数组,并向我解释为什么我的代码不能工作。
这里是我称之为插入排序的地方。目标是使insertion_sort_array正确排序,而random_test_array_10保持未排序。
for i in random_array_10:
print i
time.sleep(2)
print "Insertion Sort"
with timer.Timer() as t:
insertion_sort_array = sorts.insertion_sort(random_array_10).isort()
print t.interval
for i in random_array_10:
print i下面是插入排序类
class insertion_sort():
def __init__(self, array):
self.array = array
def isort(self):
for i in range(1, len(self.array)):
temp = self.array[i]
k = i
while k > 0 and temp < self.array[k-1]:
self.array[k] = self.array[k-1]
k = k-1
self.array[k] = temp
return self.array发布于 2014-07-23 17:40:54
self.array和array都指向同一个对象(相同的可变列表)。要复制列表,可以在list()中使用__init__构造函数
self.array = list(array)作为一个优点,它允许任何其他可迭代作为插入排序的输入。
https://stackoverflow.com/questions/24917245
复制相似问题