【问题标题】:Assigning in Python, Arrays在 Python 中赋值,数组
【发布时间】:2014-07-23 17:38:14
【问题描述】:

我正在创建一个随机值数组,以便我可以进行不同的排序并查看它们如何交互。问题是当我对数组调用排序时,我不能再次使用该数组,因为它已经排序。我只是似乎不明白 python 如何处理作业。对我来说,它看起来像是将一个数组分配给另一个数组共享一个内存地址。有人可以请教如何在 python 中分配数组并向我解释为什么我的代码不起作用。

这就是我所说的插入排序。目标是使插入排序数组正确排序,而随机测试数组 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

【问题讨论】:

    标签: python arrays variable-assignment


    【解决方案1】:

    self.arrayarray 都指向同一个对象(同一个可变列表)。要制作列表的副本,您可以使用__init__ 中的list() 构造函数:

    self.array = list(array)
    

    作为一个优点,它允许任何其他可迭代对象作为插入排序的输入。

    【讨论】:

    • 虽然值得注意的是,如果他这样做,他将同时对复制数组和排序进行计时。
    猜你喜欢
    • 2014-07-12
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2021-05-09
    • 2018-06-10
    相关资源
    最近更新 更多