【发布时间】:2017-11-11 18:10:46
【问题描述】:
考虑以下bubble sort 程序:
arr = map(int, raw_input().split(' '))
print "Unsorted: \n{arr_name}".format(arr_name = arr)
for j in range(len(arr) - 1, 0, -1):
for i in range(j):
if (arr[i] > arr[i + 1]):
arr[i], arr[i + 1] = arr[i +1], arr[i]
print "Sorted: \n{arr_name}".format(arr_name = arr)
通常使用temp 变量进行排序,这意味着空间复杂度为0(1)。但我的理解是,元组交换只是将标识符重新分配给对象(link)。这是否需要任何额外的空间?这里的空间复杂度是多少?还是O(1),因为创建了一个元组?
【问题讨论】:
-
你是在问元组交换是否在排序操作中占用少量的、恒定的内存?
-
是的。通常,交换中使用的
temp变量是指定O(1)的原因,因为它是使用的额外内存。我试图在这里找到temp的对应对象。
标签: python tuples swap bubble-sort space-complexity