如何计算代码中的比较?我需要一个变量计数器,然后我需要返回它


import random
def QuickSort(Lista):
if len(Lista) <= 1: return Lista

min = []
ugu = []
mag = []
pivot = Lista[-1]

for i in Lista:
if i < pivot: min.append(i)
elif i == pivot: ugu.append(i)
else: mag.append(i)

return QuickSort(min) + ugu + QuickSort(mag)
l = [random.randrange(10) for i in range(10)]
print(QuickSort(l))

您可以单独进行比较。

count = 0
def lt(a, b):
global count
count += 1
if a < b:
return True
return False
def eq(a, b):
global count
count += 1
if a == b:
return True
return False
def quicksort(tosort):
if len(tosort) <= 1:
return tosort
minside = []
middle = []
maxside = []
pivot = tosort[-1]
for i in tosort:
if lt(i, pivot):
minside.append(i)
elif eq(i, pivot):
middle.append(i)
else:
maxside.append(i)
return quicksort(minside) + middle + quicksort(maxside)
tosort = [
[*range(10)],
[*range(9, -1, -1)],
[5, 2, 9, 2, 5, 1, 9, 0, 2, 4]
]
for sorting, name in [(quicksort, 'quicksort')]:
for alist in tosort:
sorting(alist.copy())
count = 0
print(
f"{name} {alist} {sorting(alist.copy())} {count}"
)

最新更新