Я пытаюсь определить время, необходимое для сортировки списка разных размеров по написанному мной коду сортировки. Я создаю случайный список чисел от 1 до тысячи. Затем я медленно перемещаю большие числа назад, сравнивая число с номером в следующей позиции. Затем я перемещаюсь по всему списку вот так, проверяю, отсортирован ли список, и если нет, повторяю процесс. Использование для l oop Я пытаюсь вычислить время, которое требуется коду для сортировки списка увеличивающихся размеров. Вот код:
import random
import time
sizeOfLargestList = int(input("Enter: "))
def isItSorted(list):
for postion in range(0, len(list)-1):
if(list[postion] > list[postion+1]):
return False
return True
def sortTwoVar(list, position):
if(list[position] < list[position+1]):
return True
elif(list[position] == list[position+1]):
return "Equal"
else:
return False
def loopSort(list):
numberOfEquivilentNumbers = 1
for position in range(0, len(list)-1):
sorted = sortTwoVar(list, position)
if(sorted == False):
for set in range(numberOfEquivilentNumbers):
numberMoving = list.pop(position-set)
list.insert(position+1, numberMoving)
numberOfEquivilentNumbers = 1
elif(sorted == "Equal"):
numberOfEquivilentNumbers += 1
else:
numberOfEquivilentNumbers = 1
def sorter(length):
list = []
for i in range(0,length):
list.append(random.randint(0,1000))
print("2")
start = time.time()
while(isItSorted(list) == 0):
loopSort(list)
print("3")
end = time.time()
return end-start
for listSize in range(0,sizeOfLargestList):
print("1")
time = sorter(listSize)
print("List Size:" , listSize , "Time To Execute:" , time)
Всякий раз, когда я пытаюсь создать список длиннее нуля атрибутов, я получаю вывод примерно так:
Enter: 2
1
2
3
List Size: 0 Time To Execute: 0.0
1
2
Traceback (most recent call last):
File "C:\Python Codes\Sort Code restart.py", line 53, in <module>
time = sorter(listSize)
File "C:\Python Codes\Sort Code restart.py", line 43, in sorter
start = time.time()
AttributeError: 'float' object has no attribute 'time'
Как я могу исправить свой элемент времени.