Ich erstelle ein Programm, das die Ausführungszeiten verschiedener Sortieralgorithmen (Selection, Bubble, Merge und Tree sort) misst.Inkrementieren der Listengröße basierend auf der verstrichenen Zeit
Die Listengrößen für die Testfälle sollten bei 10.000 beginnen und für jeden Test um 10.000 steigen, bis die Ausführungszeit für den Test 60 Sekunden überschreitet.
Und das ist mein Problem.
Ich habe diesen wahrscheinlich sehr falschen (und hässlichen) Code, den ich erstellt habe (ich teste gerade mit dem Bubble Sort).
import random
import time
def bubbleSort(a_list):
for passnum in range(len(a_list)-1,0,-1):
for i in range(passnum):
if a_list[i]>a_list[i+1]:
temp = a_list[i]
a_list[i] = a_list[i+1]
a_list[i+1] = temp
a_list = []
for i in range(10000):
a_list.append(random.randrange(0,10000))
start = time.perf_counter()
bubbleSort(a_list)
end = time.perf_counter()
elapsed = end - start
print("{0:.8f}".format(elapsed, "\n"))
print(a_list)
if elapsed <= 60:
for i in range(len(a_list), len(a_list)+10000):
a_list.append(random.randrange(len(a_list)+10000))
start = time.perf_counter()
bubbleSort(a_list)
end = time.perf_counter()
elapsed = end - start
print("{0:.8f}".format(elapsed, "\n"))
print(a_list)
else:
#it'll quit
Ich bin für die Ignoranz leid, die sehr offensichtlich ist.
Also oben war meine erste Reaktion. Dann kam ich mit dieser Schleife bis:
start = time.perf_counter()
while start <= 60:
for i in range(len(a_list)+10000):
a_list.append(random.randrange(len(a_list)+10000))
bubbleSort(a_list)
end = time.perf_counter()
elapsed = end - start
print("{0:.8f}".format(elapsed, "\n"))
print(a_list)
Ich wäre sehr dankbar, wenn mir jemand einen Stoß in die richtige Richtung geben kann und mir helfen, denken Sie an die Logik dahinter. Vielen Dank im Voraus.
Danke soviel !! Das ist mir sehr klar. Und über die Sekunden Sache, ja du hast Recht ich nicht. Ich habe gerade das Format von einem anderen Programm, das ich geöffnet hatte, kopiert und die Nachkommastellen nicht geändert. Guten Tag/Nacht! – egg