我需要计算以下选择排序算法中的比较和交换次数:
import random
lista = random.sample(range(0,20), 20):
def selecao(lista):
for i in range(0, (len(lista)-1)):
mini = i
for j in range(i+1, len(lista)):
if lista[j] < lista[mini]:
mini = j
lista[mini], lista[i] = lista[i],lista[mini]
return lista
print(selecao(lista))
我如何解释进行了多少次比较和交换?换行在此行进行:
lista[mini], lista[i] = lista[i],lista[mini]
c1表示比较次数,c2表示交换次数。谢谢
答案 0 :(得分:0)
您说您想计算执行某行的次数。你算他们。这是一个示例:
swaps = 0
comparaciones = 0
for i in range(19):
for _ in range(19-i):
comparaciones += 1
swaps += 1
print ("swaps {}, comparisons {}".format(swaps, comparaciones))
交换19,比较190
请注意,我使用了描述性变量名,而不是c1和c2。这样做将对您将来有所帮助。